最近の安打(シングル)

2009年11月12日

私は今の今まで、Javascriptの replace関数を最初の1個しか置換しない、大変使えない関数だと誤解していたよ。

(リマインダ代わりに、)
私はJavascriptで文字列の中を全置換するとき、
replace関数は最初の1個しか置換してくれないから
わざわざ splitしてループまわしてたよ。

ところがreplace関数は大変使える奴だったよ...とほほのreplace関数の解説では
http://www.tohoho-web.com/js/string.htm

を見ると、

xx1 = "This is a pen.".replace("pen", "book");

これを実行すると、"This is a book."と返る。よしよし。
そして複数行けるか試す。

xx1 = "This pen is a pen. And I love pen!".replace("pen", "book");

だと、"This book is a pen. And I love pen!" と返り、
後半2つの pen が置換されずにそのまま返る。
今まで私は「なんだ、replace関数は最初の1個しか置換せーへんねや。」と覚えていた。

ふと、今日サクラエディタのマクロを作っていて、
もう一度replace関数を見なおしてみた。

「正規表現を設定できるじゃん!」
replace関数の1個目の引数に正規表現を渡せるのである。
そこで実行したのがこのコード!

xx1 = "This pen is a pen. And I love pen!!!!".replace(/pen/g, "book");

これが、"This book is a book. And I love book!!!!" を返した!
全置換できるじゃん。

これけっこうreplace関数に関しては誤解してる人多いと思うなぁ。
posted by CPJ at 15:28 | Comment(2) | TrackBack(0) | by Tanarity
この記事へのコメント
ムズカシイね。
プログラミングって、やっぱりプログラミング脳にならないと、ムズカシイ。
基本はシンプルだけれど、シンプルの組み合わせで難しい仕事をさせるってのは、慣れてないと発想出来ないね。

http://www.kent-web.com/perl/chap7.html
Posted by けむ。 at 2009年11月12日 16:54
奥は深いね~。
特に正規表現なんかそんな毎日使うもんでもなく
たまに使うものだからその都度 「正規表現」でググることになる(笑)。
Posted by Tanarity at 2009年11月12日 18:23
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

この記事へのトラックバックURL
http://blog.seesaa.jp/tb/132711048
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック
Constructive Project of Jet