2010-08-26 16 views
2

是否可以將找到的單詞插入到替換中?Javascript正則表達式 - 插入單詞(點擊)

$(function() { 

    content = 'hallo mein name ist peter und ich komme aus berlin. Und du?'; 

    words = 'mein na,berlin' 

    words = words.replace(/,/,'\|'); 
    words = words.replace(/\s/,'\\s'); 

    regex = new RegExp(words,'gi'); 

    content = content.replace(regex,'<strong>*insert here the word that was found*</strong>'); 

    alert(''+content+''); 

}); 

工作示例 http://www.jsfiddle.net/V9Euk/227/

提前感謝! 彼得

回答

4

試試這個:

content.replace(regex,'<strong>$&</strong>'); 

$&替換爲全場比賽。
工作例如:http://www.jsfiddle.net/V9Euk/228/

如果你更舒服,您可以添加組和$1取代它(這個會引發更少的問題):

words = words.replace(/,/g,'\|'); 
words = words.replace(/\s/g,'\\s'); 
words = '(' + words + ')'; 

regex = new RegExp(words, 'gi'); 

content = content.replace(regex,'<strong>$1</strong>'); 

請注意,你可能想在這些替換上使用g標誌,或者只更改第一個空格和逗號。
如果你也想避免部分匹配(所以「我的吶」不捕獲),添加\b

words = '\\b(' + words + ')\\b'; 
+0

非常感謝您! – Peter 2010-08-26 09:57:59

+0

@Peter - 沒問題。祝你好運! – Kobi 2010-08-26 10:07:42