2010-08-03 96 views
0

如果使用正则表达式/(this|a)/的Javascript正则表达式的结果

现在,如果我有:

var text = "this is a sentence."; 
text = text.replace(/(this|a)/gi, "_"); 
document.write(text); 

我得到的输出:_ is _ sentence

我在一段JavaScript代码,做选择性的工作造型,所以我想要做的就是添加'<span class="className">" + word_in_regex + "</span>"其中word_in_regex是来自匹配表达式的单词。这是可能的还是不可以的?

+1

有趣的是,你应该用这个正则表达式得到的输出是“_是一个句子”。 – MooGoo 2010-08-03 18:12:13

回答

3

可以使用$1在替换字符串来引用第一组的匹配:

"this is a sentence".replace(/(this|a)/g, "_$1_") // returns "_this_ is _a_ sentence" 

注意标志用来全局替换;否则只有第一场比赛将被替换。有关更多信息,请参阅RegExpString.prototype.replace

+0

哇,我没有意识到我离开了克。但是这完全按照需要工作。 – 2010-08-03 18:13:56