我有以下代码,但是我需要在运行时向正则表达式对象(regex2
)注入一些不同的东西。但是,text.replace似乎不喜欢正则表达式的字符串对象,所以我该如何使它工作?
var regex2 = /\|\d+:\d+/;
document.write("result = " + text.replace(regex2, '') + "<br>");
答案 0 :(得分:55)
您可以使用RegExp构造函数从字符串中创建正则表达式对象:
var regExp = new RegExp(myString); // regex pattern string
text.replace(regExp, '');
答案 1 :(得分:24)
加入CMS:
RegExp
构造函数有第二个可选参数标志
(15.10.4 The RegExp Constructor)
var text = "This is a Test.";
var myRegExp = new RegExp('teST','i');
text.replace(myRegExp,'Example');
// -> "This is a Example."
你可以设置标志
答案 2 :(得分:4)
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
答案 3 :(得分:-3)
你可以使用eval,
new RegExp( eval("/"+str+"/i") );
...再见