JavaScript で複数出現する文字列を置換する
JavaScript で複数出現する文字列を置換する必要があるかもしれませんが、標準string.replace() メソッドは最初のインスタンスのみを削除します。すべての出現箇所が確実に置換されるようにするにはどうすればよいですか?
最新のソリューション (ES2021 )
最新のブラウザでは、ネイティブに置換できる String.replaceAll() メソッドがサポートされるようになりました。文字列のすべてのインスタンス。次の構文を使用するだけです:
<code class="js">string = string.replaceAll('abc', '');</code>
古いブラウザ向けのレガシー ソリューション
古いブラウザの場合は、g (グローバル) フラグを指定した正規表現を使用できます。
<code class="js">function replaceAll(str, find, replace) { return str.replace(new RegExp(find, 'g'), replace); }</code>
特殊文字のエスケープ
正規表現には特殊文字が含まれるため、find 引数に変数を渡すときは注意してください。特殊文字を安全にエスケープするには、escapeRegExp() 関数を使用します:
<code class="js">function escapeRegExp(str) { return str.replace(/[.*+?^${}()|[\]\]/g, '\$&'); }</code>
したがって、更新された replaceAll() 関数は次のようになります:
<code class="js">function replaceAll(str, find, replace) { return str.replace(new RegExp(escapeRegExp(find), 'g'), replace); }</code>
このソリューションでは、指定された文字列がすべて出現することが保証されます。ブラウザの互換性にもかかわらず置き換えられます。
以上がJavaScript で出現する文字列をすべて置換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。