2010-08-09 65 views
4

这不区分大小写的替代效果很好:智能字符串替换

str = str.replace(new RegExp(phrase, 'gi'), '<span style="color:red;">' + phrase + '</span>'); 

但我确实想为它代替上述的功能在不改变的情况下。

回答

1

str = str.replace(new RegExp(phrase, 'gi'), '<span>$&</span>');

+1

这一个工程!谢谢!至少在我的Opera中,建议的一个reko_t不起作用。 – 2010-08-09 09:46:14

0

捕获与括号内的短语,并使用$1替换字符串,如:

'Foobar'.replace(/(foo)/gi, '<x>$1</x>') 

会导致<x>Foo</x>bar

+0

难道不该'$&'?或者,至少你需要一个捕获组... – Kobi 2010-08-09 09:42:07

+0

我不确定你的意思。有一个捕获组,'$ 1'指的是第一个捕获组。 – 2010-08-09 09:48:05

+0

我编辑你的答案后有一个捕获组:'' – Kobi 2010-08-09 09:49:10