JavaScript で出現する文字列をすべて置換する方法
問題:
JavaScript の組み込み replace( ) メソッドを使用して部分文字列を置換すると、次の例に示すように、最初に出現した部分のみが置換されます:
1 2 | <code class = "javascript" > var string = "Test abc test test abc test test test abc test test abc" ;
string = string.replace( 'abc' , '' );
|
ログイン後にコピー
JavaScript で部分文字列のすべての出現を置換するにはどうすればよいですか?
解決策:
String.replaceAll() の使用
最新のブラウザ:
最新のブラウザは String.replaceAll() メソッドをサポートしています。出現するすべての部分文字列を指定された置換で置き換えます:
1 | <code class = "javascript" >string = string.replaceAll( 'abc' , '' );
|
ログイン後にコピー
古い/レガシー ブラウザの場合
カスタム関数:
古いまたはレガシーの場合String.replaceAll() をサポートしていないブラウザでは、カスタム関数を使用できます:
1 2 3 4 5 6 7 | <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>
|
ログイン後にコピー
使用法:
1 | <code class = "javascript" >console.log(replaceAll(string, 'abc' , '' ));
|
ログイン後にコピー
注:
- escapeRegExp() 関数は、検索文字列内の特殊文字をエスケープして、正確な一致を保証します。
- 正規表現内の g フラグにより、出現したすべての文字が置換されます。
以上がJavaScript で特定の文字列のすべてのインスタンスを置換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。