如果我有一个包含>符号的s tring,如何使用正则表达式替换它,这是使用new RegExp()从字符串构造的。
var s = "\\>:\\)"; // this is definetely wrong string for regexp contructor
var reg = new RegExp(s, "g");
alert(msg.replace(reg, "IT WORKS!!");替换:)不是一个问题,new RegExp(":\\)","g")工作得很好,但是如何将>添加到regexp以使其工作呢?
同样,必须通过向RegExp构造器指定正确的字符串来完成。
发布于 2015-10-20 06:26:26
问题在于html()。html()将对字符串进行编码并返回
this is angry smile >:) how it looks?
^^^^使用text而不是html,或者使用regex />:\)/g替换编码的>。
此外,也不需要转义>。
var msg = $("pre").text();
var s = ">:\\)";
var reg = new RegExp(s, "g");
$("pre").html( msg.replace(reg, "IT WORKS!!") )<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<pre>this is angry smile >:) how it looks?</pre>
发布于 2015-10-20 06:29:20
您的问题不是RegExp,而是对html()的调用。
我在这里有一个更新的jsfiddle :工作的http://jsfiddle.net/sx8bxmnw/。
var msg = $("pre").text();
var s = ">:\\)";
var reg = new RegExp(s, "g");
$("pre").text( msg.replace(reg, "IT WORKS!!") )为了回答你最初的问题,Pranav C Balan的评论是正确的。
发布于 2015-10-20 06:30:41
尝试以下几个方面:
var msg = $("pre").html();
var s = "\\>:\\)";
var reg = new RegExp(s);
$("pre").html( msg.replace(reg, "IT WORKS!!") )更新的小提琴
https://stackoverflow.com/questions/33229386
复制相似问题