2012-05-28 24 views
0

假设我们有一个简单的alghoritm突出显示的搜索结果:JS正则表达式恢复参照

var patt = new RegExp(result+"(?=\\s|\\.|,|<)(?! type=| class=| id=| src=)","gi"); 
var highlighted = unhighlighted.replace(patt,"<span style='border:1px solid #3399FF;'>"+result+"</span>") 

这工作,但我怎么转文本的大小写。我可以参考匹配的单词或短语吗?

回答

0

您必须使用捕获组和反向引用来实现此目的。这可以像tihs

var patt = new RegExp("(" + result + ")" +"(?=\\s|\\.|,|<)(?! type=| class=| id=| src=)","gi"); 
var highlighted = unhighlighted.replace(patt,"<span style='border:1px solid #3399FF;'>$1</span>"); 
+0

这不工作... “$ 1没有定义” –

+0

@BobbyMarinoff我的错。纠正。 –

0

明白了做 - 同Yadala的,但$ 1是字符串:

var patt = new RegExp("(" + result + ")" +"(?=\\s|\\.|,|<)(?! type=| class=| id=| src=)","gi"); 
var highlighted = unhighlighted.replace(patt,"<span style='border:1px solid #3399FF;'>$1</span>");