ホームページ  >  記事  >  ウェブフロントエンド  >  js は正規表現を使用して ReplaceAll 置換メソッドを実装します_javascript スキル

js は正規表現を使用して ReplaceAll 置換メソッドを実装します_javascript スキル

WBOY
WBOYオリジナル
2016-05-16 16:39:052357ブラウズ

JS 文字列には replace() メソッドがあります。ただし、このメソッドは最初に一致した文字列のみを置き換えます。 例:

<HTML>
<HEAD>
<TITLE> New Document </TITLE>
</HEAD>

<BODY>
<script>
var str = "wordwordwordword";
var strNew = str.replace("word","Excel");
alert(strNew);
</script>
</BODY>
</HTML>

すべてを置換したい場合、JS には replaceAll のようなメソッドがありません。 Replace の効果は、通常のテーブルを使用して実現できます:

str.replace(/word/g,"Excel")

g は、グローバル一致を実行します (最初の一致が見つかった後に停止するのではなく、すべての一致を検索します) ことを意味します。

<HEAD>
<TITLE> New Document </TITLE>
<script>
function replaceAll(str)
{
if(str!=null)
str = str.replace(/word/g,"Excel")
return str;
}
</script>
</HEAD>

<BODY>
<script>
var str = "wordwordwordword";
var strNew = str.replace("word","Excel");
strNew = replaceAll(str);
alert(strNew);
</script>
</BODY>
</HTML>

上記の書き方には、以下のような書き方があります。

str.replace(new RegExp("word","gm"),"Excel")

g は、グローバル一致を実行します (最初の一致が見つかった後に停止するのではなく、すべての一致を検索します)。

m は複数行のマッチングを実行します。

さらに、Stirng オブジェクトのプロトタイプ メソッドを追加することもできます。

String.prototype.replaceAll = function(s1,s2){ 
return this.replace(new RegExp(s1,"gm"),s2); 
}


こうすることで、replace メソッドを使用するのと同じように replaceAll を使用できます

str.replaceAll("word","Excel");

まとめると、方法は 3 つあります

1.str.replace(/oldString/g,newString)

2. str.replace(new RegExp(oldString,"gm"),newString)

3. String オブジェクトのプロトタイプ メソッド replaceAll を追加します

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。