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