要求選中的文本塊要不能有HTML代碼字元,同時要滿足常見文本的字元,如标點符号、英文标點、鍵盤上的上檔符、中文的其他符号,即常見的查詢句子,詞語、書名等要可以提供搜尋。
初稿腳本:
function getSel()
{
var txt = '';
var foundIn = '';
if(window.getSelection)
{
txt = window.getSelection();
foundIn = 'window.getSelection()';
}else if(document.getSelection)
txt = document.getSelection();
foundIn = 'document.getSelection()';
}else if(document.selection)
txt = document.selection.createRange().htmlText;
foundIn = 'document.selection.createRange()';
}else
return;
document.getElementById("selectTxt").value = txt;
}
function specialCharacters(obj){
var value = obj.value;
// alert('驗證前:'+value);
var patrn=/^[0-9a-zA-Z\u4e00-\u9fa5+\.+\《》]+$/;
if (patrn.test(value)) {
return true;
} else{
alert("選中文字為非純文字,其中含有特殊字元,請重選。");
return false;
}
}
function selectKM(){
getSel();
if(event.button==2){
try{
var content = document.getElementById("selectTxt").value;
content = content.replace(/^\n+|\n+$/g,"");
content = content.replace(/<\/?.+?>/g,"");
content = content.replace(/[\r\n]/g, "");
content = content.replace(/\s+/g,"");
content = content.replace("&quot;","");
content = content.replace("\"","");
content = content.replace("&nbsp;","");
content = content.replace("^","");
content = content.replace("!=","");
content = content.replace("{","");
content = content.replace(";","");
content = content.replace("?","");
content = content.replace("'","");
content = content.replace("\\","");
content = content.replace("/","");
content = content.replace("[]","");
content = content.replace("*","");
content = content.replace("(","");
content = content.replace(")","");
content = content.replace("{}","");
content = content.replace(/%/g,"");
content = content.replace("?","");
content = content.replace("$","");
content = content.replace("#","");
content = content.replace("&","");
content = content.replace("@","");
content = content.replace("}","");
content = content.replace("|","");
content = content.replace("¥","");
var contentPreVai = content;
content = content.replace("——","");
content = content.replace("—","");
content = content.replace(".","");
content = content.replace(",","");
content = content.replace(/。/g,"");
content = content.replace(/,/g,"");
content = content.replace("!","");
content = content.replace(";","");
content = content.replace("‘","");
content = content.replace("’","");
content = content.replace(/、/g,"");
content = content.replace("【","");
content = content.replace("】","");
content = content.replace(":","");
content = content.replace("“","");
content = content.replace("”","");
content = content.replace("《","");
content = content.replace("》","");
content = content.replace("……","");
document.getElementById("selectTxt").value = content;
var vail = specialCharacters(document.getElementById("selectTxt"));
if(contentPreVai.length>0 && vail == true){
//if(contentPreVai.length>0 ){
//alert(contentPreVai);
createMenu(contentPreVai);
}
return;
}catch(e){}
}
本文轉自danni505 51CTO部落格,原文連結:http://blog.51cto.com/danni505/1078224,如需轉載請自行聯系原作者