プロプログラマ

プログラマーを職業としてます。 Flex,Air,C#,Oracle,HTML+JSの言語ノウハウを中心に情報発信していきます

javascriptでreplaceAll

JavaScriptにはreplaceAllという関数は標準では存在しません。
replace関数はありますが、通常は1箇所のみの置き換えになります。

では、全体の置き換えをしたい場合はどうしたらよいか。

2種類の方法があるようです。

[方法1] 正規表現を使う

var testText="Hello World";
testText.replace(/o/g, "*");

この方法では、replace関数を使いますが、引数1を正規表現で指定し/gでくくります。
他の言語でも使われる方法です。

[方法2] いったんばらして置き換え後文字列でつなぎなおす?!

vartestText="Hello World";
testText.split("o").join("*");

知らないで見ると何をやっているのかわからないロジックです。
置き換え前の文字列でsplitし、置き換え後文字列でjoinしなおすというかなり奇抜なアイデアです。

 

どちらの方法も同じように置き換えはできます。
方法2を使う場合は、文字列置き換えをしているということをコメントなどで明確に残しておかないと、後で見た人がこれ何??ってなると思います。(splitとjoinからは置き換えのイメージが出てこない)

 

ちなみに、パフォーマンス的には方法1の方が速いようです。
一般的には、正規表現は遅いという認識がありますが、方法2がかなり負荷のかかりそうな処理を中でやっていそうなので、この場合は方法1がお勧めということでしょうか。

置き換え対象の文字数にも関係すると思います。

 

== ランキングに参加しています。ぜひクリックお願いします ==

プログラム ブログランキングへ
にほんブログ村 IT技術ブログへ
にほんブログ村

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください