请教正则匹配结尾为不为";"的词语和开头不为"&"的表达式!
问题来源:
现贴出Js高亮的测试代码。var Highlighter={
highlight:
function(b,a){
b=b.replace(/(^\s*)|(\s*$)/g,"");
if(!b||b.length==0){
return;

                        var c=new RegExp("("+b.split(/\s+/).join("|")+")","ig");
if("undefined"==typeof(a)){return;}
for(i in a){
if(a[i].innerHTML){a[i].innerHTML=a[i].innerHTML.replace(c,'<span style="color:#c00;">$1</span>');}
}
}
};引用办法:
var keywords = 'am pm'; 
Highlighter.highlight(keywords, $('.info, .about'));结果:
页面中元素 class=info 和 class=about内的am和pm将会被高亮取代。问题:
如果出现 字符串 转义字符 &amp; 的时候,转义字符也同样被高亮,这样导致&符号被破坏。有一个不完整的办法:
不replace以&开头和;结尾的词语,我稍微改一下正则为
var c=new RegExp("("+b.split(/\s+/).join("(?!;)|")+"(?!;))","ig");
这里只完成不匹配结尾为;的词语,缺少不匹配以&开始的词语!求救!谢谢!