2017-12-13 17 views
0

私はプロジェクトで作業しています。私はあなたの助けが必要です。私は文字列内の単語の出現をすべて置き換えようとしています。最初の問題は、大文字または小文字の作業(通常の表現で固定)を置き換えることでしたが、その単語を同じ単語に置き換える必要がありますいくつかのHTMLタグを追加するとできましたが、置き換えたときに大文字または小文字が保持されません。このような:文字列のすべての置換(大文字と小文字のままにする)Javascript

var string = "Hello, hello, HELLO"; 
search = "hello"; 
replacement = "<h1>hello</h1>";  
string.split(new RegExp(search,"i")).join(replacement); 

そして、私はこれを取得:私は大文字または小文字を維持する必要があるしかし

<h1>hello<h1>, <h1>hello<h1>, <h1>hello<h1> 

を。私は次のようなものが必要です:

<h1>Hello<h1>, <h1>hello<h1>, <h1>HELLO<h1> 

私を助けてくれますか?

答えて

1
string.replace(new RegExp('(' + search + ')',"ig"), '<h1>$1</h1>'); 

このようなことができます。

+1

完璧!これは私が必要なものです! $ 1は何ですか?説明して頂けますか? – araujo

+0

$ 1は、正規表現の最初の正規表現キャプチャグループへの参照です。この場合、あなたの正規表現 '/(hello)/ ig'には、helloのキャプチャグループ(括弧で囲まれています)が1つあります。 $ 1を参照すると、そのキャプチャグループに一致するテキストを参照しています。元のテキストになります。 – crapier

関連する問題