0

検索結果を強調表示するための単純なアルゴリズムがあるとします。

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

これは機能しますが、テキストの大文字をどのように転送すればよいですか。一致した単語またはフレーズを参照できますか?

4

2 に答える 2

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>");
于 2012-05-28T15:25:50.917 に答える
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>");
于 2012-05-29T08:29:41.643 に答える