[英]Javascript String.replace with dynamic regular expressions?
我有以下代码,它有效,但我需要在运行时将一些不同的东西注入正则表达式对象 ( regex2
)。 但是, text.replace 似乎不喜欢正则表达式的字符串对象,那么我怎样才能做到这一点呢?
var regex2 = /\|\d+:\d+/;
document.write("result = " + text.replace(regex2, '') + "<br>");
您可以使用RegExp构造函数从字符串创建正则表达式对象:
var regExp = new RegExp(myString); // regex pattern string
text.replace(regExp, '');
除了 CMS: RegExp
构造函数还有第二个可选参数标志
(15.10.4 正则表达式构造函数)
var text = "This is a Test.";
var myRegExp = new RegExp('teST','i');
text.replace(myRegExp,'Example');
// -> "This is a Example."
作为您可以设置的标志
var value = "2012-09-10";
value = value.replace(/([0-9]{4})[\/-]([0-9]{2})[\/-]([0-9]{2})/,"$3/$2/$1");
alert(value);
这将显示
10/09/2012
你可以使用 eval 来,
new RegExp( eval("/"+str+"/i") );
再见...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.