2010-08-03 137 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