关于字符串加红的一个替换,不过 a标签及标签内的不替换 例如字符串 “1abc<a hrec="abc.html">2abc</a>3abc” 如果加红a字符,我需要得到是只加红123abc和789abc中的a字符 结果:1<span style="color:red;">a</a>bc<a hrec="abc.html">2abc</a>3<span style="color:red;">a</a>bc
调试欢乐多
<script type="text/javascript">
<!--
s ='1abc<a hrec="abc.html">2abc</a>3abc<a hrec="abc.html">3abc</a>';
re = /<(\w+)[^>]*>.+?<\/\1>/gi;
s2 = s.replace(re,'%%%');
s3 = s2.replace(/a/g,'<span style="color:red;">a</a>') re.lastIndex = 0;
a = re.exec(s)
while (a!=null)
{
s3 = s3.replace('%%%',a[0])
a = re.exec(s)
}
alert(s3);
//-->
</script>
<script type="text/javascript">var str = '1abc<a hrec="abc.html">2abc</a>3abc';str = str.replace(/([^<]*)a([^>]*)/g, '$1<span style="color:red;">a</span>$2');alert(str)</script>
<script type="text/javascript">String.prototype.searcher = function(words) {
var reg = RegExp("(<.*?a>)?([^<]*)"+words+"([^<]*)(<.*?a>)?", "g");
return this.replace(reg, '$1$2<span style="color:red;">'+words+'</span>$3$4');
}var str = '1abc<a href="abc.html">2abc</a>3abc<a href="abd.html">4abc</a>5abc<a href="abe.html">6abc</a>7abc';alert(str.searcher("a"));
alert(str.searcher("b"));
alert(str.searcher("ab"));
</script>