JavaScript - replace()
"hoge".replace() での正規表現とコールバック関数
replace関数の第一引数には正規表現を指定できる。
また第二引数にはマッチした文字列を引数とするコールバック関数を指定できる。コールバック関数の戻り値でマッチした文字列が置換される。
var str = "hoge123foo456-"; str = str.replace(/([a-z]+)([0-9]+)/g,function (total, alpha, num) { console.log(total); console.log(alpha); console.log(num); });
コールバック関数の第一引数はマッチング文字列全体、第二引数以降はグループ化した文字列のマッチングが渡される。
g オプションをつけた場合コールバック関数が呼ばれる回数=マッチング数となる。
グルーピングした文字列はコールバック関数での引数としてしか意味を持たない。置換対象ではないので注意。