ユーザ用ツール

サイト用ツール


javascript:stringreplace

replaceに関数を渡す

String#replaceメソッドは文字列を置き換えるメソッド。基本的な使い方は以下のようになる

var hoge = "hoge";
var a = hoge.replace("h", "m");  // mogeに置き換わる

var hoge = "h1o2g3e4";
var b =  hoge.replace( /[0-9]/g, "x")  // 正規表現も使える

第二引数には関数を渡せる。関数の第一引数はマッチした文字列全体、第二引数以降は正規表現の()でグループ化した部分。関数の戻り値でreplaceされる。

例:

String.prototype.multiply = function(c) {
   var x = "";
   for (var i = 0; i < c; i ++) x += this;
   return x;
}

var hoge = "2h 1o 0g 4e";
var c = hoge.replace( /([0-9])([a-z])/g, function(m0 ,m1, m2) { return m2.multiply(m1); } );

alert(c); // "hh o eeee" と表示

perlの正規表現のeオプションと同様の処理が行える。

URL文字列をハイパーリンクに変える

function link(str) {
    return str.replaceAll(/((http|https)\:\/\/[0-9a-zA-Z:\/[-_.!~*';?:@&=+$,%#]+)/, function(m0,m1) { return m1.link(m1); });
}
javascript/stringreplace.txt · 最終更新: 2009/10/12 17:23 by 127.0.0.1