[JavaScript] replace関数の件

2014年9月22日

Javascript

javascriptの挙動ってたまにおかしく感じる事が多々あるが、replace関数もその一つで、この機能を実行すると、文字列内の特定文字列を置換する機能なんだが、複数の置換に対応しておらず、最初の文字置換のみしか実行されない。

replaceを普通に使ってみる

var str = "abcdefgabcdefg"; var res = str.replace("abc","123"); console.log(res); //[結果]----- > 123defgabcdefg アフォかと・・・ こんな使い方する奴、めったにおらんやろ! そこで考えた。 「replaceは使うな!下記の書き方で行え!」・・・と・・・

次の手を考えた

var str = "abcdefgabcdefg"; var res = str.split("abc").join("123"); console.log(res); //[結果]----- > 123defg123defg どうだ! こうして、無意味な関数排除運動へと繋げたい。

実はできた・・・

var str = "abcdefgabcdefg"; var res = str.replace(/abc/g,"123"); console.log(res); //[結果]----- > 123defg123defg globalマッチのgフラグをつけると全置換です。 とりあえず、使えますが、正規表現にしなければいけないのは、他の言語と大きく違っていて 改めて使いづらいですね。 全置換以外に使うことがどのくらいのレベルあるのか?と言う事と、stringの指定でも全置換にすることの方が違和感がないという事が、javascriptのこの関数によるバグを招いていると思いますね。 parseIntと同じで、仕様を見なおした方がいいと思いますね。是非とも・・・でも、もう無理か・・・orz

このブログを検索

ごあいさつ

このWebサイトは、独自思考で我が道を行くユゲタの少し尖った思考のTechブログです。 毎日興味がどんどん切り替わるので、テーマはマルチになっています。 もしかしたらアイデアに困っている人の助けになるかもしれません。