16

私の問題は、次のようなことをしたいということです:

Javascript vaja => <b>Ja</b>vascript va<b>ja</b> つまり、クエリ文字列(ja)があり、そのクエリ文字列のすべての出現(大文字と小文字を区別しない)をより大きな文字列(Javascript vaja)に置き換えたいと考えています。

私が今持っている最も近い解決策は次のとおりです。

"Javascript vaja".replace(/ja/gi, '<b>ja</b>');

それは私に与える:

"<b>ja</b>vascript va<b>ja</b>"

しかし、私が必要とするのは:

Javascript vaja => <b>Ja</b>vascript va<b>ja</b>

私が念頭に置いている1つの解決策は、置換前に大文字のインデックスを保持してから、それらを再置換することです。しかし、それはあまりにもハックです。これを試したのは私が初めてではなく、エレガントでシンプルなソリューションがどこかに隠されていると確信しています。

4

2 に答える 2

23

キャプチャ グループを使用するだけです。

"Javascript vaja".replace(/(ja)/gi, '<b>$1</b>');

この動作デモを参照してください。

編集:グループのキャプチャについて詳しくは、こちらをご覧ください。

于 2013-10-03T14:32:50.973 に答える