网站制作学习网JS脚本→正文:javascript replace 正则表达式有变量
字体:

javascript replace 正则表达式有变量

JS脚本 2012/12/17 18:51:08  点击:不统计

<文章来源:www.forasp.cn网站制作学习>

在正则表达式中,如果存在变量该如何处理?,在写一个正则替换的时候,用到了正则表达式的replace替换,但是在正则替换中也有变量。但在replace中正则替换有变量替换失败。
我想讲行里面的cpu进行加css,但该"cpu" 是个变量也有可能是unicorn
问题再现
代码
<ul class="Slh-dashb-list">
<li class="Slh-warn">
<h3 class="Slh-title" title="unicorn">unicorn</h3>
<p class="Slh-infor"><span title="cpu">cpu</span><span title="行:cpu">cpu</span></p>
</li>
</ul>
searchText = "cpu";
html = $(".Slh-dashb-list").html
1.我们将cpu进行加 highlight 的em

alert("old"+html);
var newHtml = html.replace("/>("+searchText+")</gi",'><em class="highlight">$1</em><');
alert("new"+newHtml);
结果是不做任何替换。

查询网上说的,在replace的时候可以用表达式,如果是固定的就不用说了,如果有变量的正则表达式,则需要"转义"一下,将变量的正则转换为正式的正则。

两种方法处理replace的变量正则表达式
1.eval
alert("old"+html+searchText); 
var newHtml = html.replace(eval("/>("+searchText+")</gi"),'><em class="highlight">$1</em><');
alert("new"+newHtml);
这样可以正常的替换想要的内容

2.new Reg
var regExp = new RegExp(">("+searchText+")<", 'gi');
alert("old"+html+searchText);
var newHtml = html.replace(regExp,'><em class="highlight">$1</em><');
alert("new"+newHtml);

这样replace正则表达式中就可以存在变量了。
 


<%77w%77%2Ef%6F%72p%73%70%2Ec%6E>

·上一篇:jquery获取对象在数组对象中的索引值 >>    ·下一篇:kindeditor判断输入为空 >>
推荐文章
最新文章