2010-08-09 69 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