少し強調表示するようにしています。 私が持っている問題は、$ 1にマッチしたものを挿入しないということです。 My機能は、あなたが見ることができるように、それは試合をラップする必要があり
getMatch(str, search) {
let result = str.replace(new RegExp(search, 'gi'), '<span class="match">$1</span>');
return result;
}
のように見えます。しかしそれはしません。
My string <span class="match">with</span> highlighting.
が、私はちょうど得る:私の予想結果は
let string = 'My string with higlighting.';
let match = getMatch(string, 'With');
:
My string <span class="match">$1</span> highlighting.
ので、$ 1が交換されていなかったここでどのように私はそれを使用する例 マッチングによって。
どうすれば解決できますか?
私はあなたが 'とマッチ全体を包むようにしたいと思いますスパン '、そう?次に、 '$ 1'を' $& 'で置き換えます。 –
私はすでに試したことがあります。問題は、大文字と小文字を区別しないが、文字列が大文字であることです。だから私は検索文字列で置き換えることができません、私は一致と置き換える必要があります – mastercheef85
あなたの '' With''はキャプチャグループを持たないので、 '$ 1'はリテラル文字列として解析されます。 '$&'は*完全一致値*を置換文字に挿入します。 –