0

ここでこの機能を見つけました

http://jsfromhell.com/string/expand-exponential

String.prototype.expandExponential = function(){
return this.replace(/^([+-])?(\d+).?(\d*)[eE]([-+]?\d+)$/, function(x, s, n, f, c){
    var l = +c < 0, i = n.length + +c, x = (l ? n : f).length,
    c = ((c = Math.abs(c)) >= x ? c - x + l : 0),
    z = (new Array(c + 1)).join("0"), r = n + f;
    return (s || "") + (l ? r = z + r : r += z).substr(0, i += l ? z.length : 0) + (i < r.length ? "." + r.substr(i) : "");
});
};

置換部分はある程度取得できますが、関数 (x、s、n、f、c) 部分を見るとわかりません。私は何が欠けていますか?

誰かがこれをより理解しやすいコンポーネントに分解するのを手伝ってくれますか?

4

2 に答える 2

1

このページを見る

基本的にx、一致した部分文字列です。s括弧の最初のペア ( ([+-]))によって一致した部分にn対応し、2 番目の括弧 ( ) によって一致した部分に対応し、以下(\d+)同様です。

一致した文字列は、この関数によって返される値に置き換えられます。

于 2013-04-09T14:22:38.080 に答える