RegExp
- 作者: デイビッドフラナガン,David Flanagan,村上列,垰井正雄,安藤進
- 出版社/メーカー: オライリー・ジャパン
- 発売日: 2000/12
- メディア: 単行本
- 購入: 2人 クリック: 60回
- この商品を含むブログ (102件) を見る
Ctrl*2
でクイック検索ボックス出して「javascript メソッド名」とかで検索する事でリファレンスを簡単に参照出来る。んで、ちょっと
RegExp
について調べたら、プロパティにleftContext
とrightContext
があるみたい。それぞれ、最近マッチした文字列の前と後の文字列を取得できる。注意したいのは、
RegExp
オブジェクトの変数にはこのプロパティが無く、RegExp
自体にしか無い事。Firefoxでしか調べてなくて他のブラウザではどうか知らないけど。
var str = "aaaHOGEbbbHOGEccc"; var reg = /HOGE/g; var res; while( (res = reg.exec(str)) != null ) { var message = ""; for ( var index in res ) { message += [ index, ": ", res[index], "\n"].join(""); } message += [ "leftContext: ", RegExp.leftContext, "\n", "rightContext: ", RegExp.rightContext, "\n" ].join(""); alert( message ); }
RegExp.leftContext
でなくてRegExp["$`"]
、RegExp.rightContext
はRegExp["$'"]
でも良い。while
文等で回すとexec
メソッドは次にマッチするもののデータを返し、マッチするものが無ければnull
を返すみたい。
これらを使えばreplece
メソッドでは出来ない、複雑な置換ができそうだ。
え? こんなの常識? いいの、これは自分用メモだから。