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

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

WBOY
リリース: 2016-05-16 16:39:05
オリジナル
2376 人が閲覧しました

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 を追加します

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート