2010-08-26 31 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