String#gsub
prototype.jsをインポートすれば、String#gsub()も使えるようになります。
- 「gsub()」は「文字列のうち、正規表現にマッチする部分すべてを置換文字列で置き換える」関数です。
- 置換文字列は「正規表現の評価結果」をコンテキストとしたテンプレート文字列として評価されます。
- なので、置換文字列内で「#{1}」とかすると最初の (...) に対応する文字列を参照できます。
- 芸が細かいなー。
- また、置換文字列として関数も指定でき、その場合関数の戻り値が置換文字列となります。
// 文字列 var str = "abcdabcdabcd"; // 置換する out.innerHTML += str.gsub(/bc/, "xy" ) + "<br/>"; // テンプレートも使える // コンテキストは正規表現の評価結果になる。 out.innerHTML += str.gsub(/(b.)/, "x#{1}y" ) + "<br/>"; // 関数も指定できる // 引数で正規表現を評価した結果(string.match()の戻り値)が渡される out.innerHTML += str.gsub(/b(.)/, function( match ){ return "x" + match[1] + "y"; } ) + "<br/>";