格式化动态正则表达式

时间:2011-08-01 20:05:23

标签: javascript regex

好奇。有什么区别?

var a=text.replace(/(Nullam|ligula|in)/ig,'`<b>$1</b>`');

var string = "Nullam|lingula|in";  
var pattern = new RegExp (string, "ig");    
var a=text.replace(pattern ,'`<b>$1</b>`');

这应该给出相同的结果,但事实并非如此。有什么想法吗?

谢谢

1 个答案:

答案 0 :(得分:3)

你在后来的陈述中遗漏了parens,所以没有捕获。标志是gi,而不是ig(虽然我不确定这是否有任何区别)

var reString = "(Nullam|lingula|in)"; var pattern = new RegExp (reString, "gi");