javascriptのreplaceにfunctionを渡す
この前URLをリンクにして、リンクテキストだけURLデコードするっていう置換をPerlでやったけど、それのJS版。
replaceの第二引数にfunctionを渡せるらしい。知らんかった。
text.replace(/(https?:\/\/[\x21-\x7e]+)/gi, function () {
var uri = arguments[1];
return '<a href="' + uri + '">' + decodeURI(uri) + '</a>';
});
functionの引数には以下のようになる。
- arguments[0] => マッチした文字列全体
- arguments[1] ~ arguments[arguments.length - 3] => ()でグルーピングした文字列が順番に
- arguments[arguments.length - 2] => マッチした文字が先頭から何文字目か
- arguments[arguments.length - 1] => 検索対象の全体の文字列
- Prev Entry:irssiをインストールしてからやったことのまとめ
- Next Entry:vimのsyntax/perl.vimをちょっと直す