問題:
JavaScript の組み込み replace( ) メソッドを使用して部分文字列を置換すると、次の例に示すように、最初に出現した部分のみが置換されます:
<code class="javascript">var string = "Test abc test test abc test test test abc test test abc"; string = string.replace('abc', ''); // Only replaces the first 'abc' occurrence</code>
JavaScript で部分文字列のすべての出現を置換するにはどうすればよいですか?
解決策:
最新のブラウザ:
最新のブラウザは String.replaceAll() メソッドをサポートしています。出現するすべての部分文字列を指定された置換で置き換えます:
<code class="javascript">string = string.replaceAll('abc', ''); // Replaces all 'abc' occurrences</code>
カスタム関数:
古いまたはレガシーの場合String.replaceAll() をサポートしていないブラウザでは、カスタム関数を使用できます:
<code class="javascript">function replaceAll(str, find, replace) { return str.replace(new RegExp(escapeRegExp(find), 'g'), replace); } function escapeRegExp(str) { return str.replace(/[.*+?^${}()|[\]\]/g, '\$&'); }</code>
使用法:
<code class="javascript">console.log(replaceAll(string, 'abc', '')); // Replaces all 'abc' occurrences</code>
注:
以上がJavaScript で特定の文字列のすべてのインスタンスを置換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。