javascript string replaceの妙味
1054 ワード
http://www.codebit.cn/javascript/javascript-replace.html
String.prototype.format = function()
{
var args = arguments;
return this.replace(/\{(\d+)\}/g,
function(m,i){
return m+args[i];
});
};
console.log("{0} is {1}".format("hello","world"));
hello is world
replaccementが関数である場合、各マッチするサブ文字列に対して、この関数を呼び出す時は以下のm+3つのパラメータがあり、ここでmはrgExpで取り込まれた左括弧の個数である。最初のパラメータはマッチするサブ文字列です。次のm個のパラメータは、検索中に取り込まれたすべての結果である。第m+2番目のパラメータは、strigObjにおいて整合して出現するオフセット量であり、第m+3番目のパラメータはstrigObjである。結果は、各マッチングしたサブ文字列を、関数呼び出しの対応する戻り値に置き換える文字列の値です。
function f2c(s) {
var test = /(\d+(\.\d*)?)F\b/g; // 。
return(s.replace
(test,
function($0,$1,$2) {
return((($1-32) * 5/9) + "C");
}
)
);
}
document.write(f2c("Water freezes at 32F and boils at 212F."));