javascript指数扩展
在这里找到这个函数javascript指数扩展,javascript,math,exponential,Javascript,Math,Exponential,在这里找到这个函数 String.prototype.expandequinology=function(){ 返回此。替换(/^([+-])?(\d+)。(\d*)[eE]([-+]?\d+)$/,函数(x,s,n,f,c){ 变量l=+c=x?c-x+l:0), z=(新数组(c+1)).join(“0”),r=n+f; 返回(s | |“”)+(l?r=z+r:r+=z).substr(0,i+=l?z.length:0)+(i
String.prototype.expandequinology=function(){
返回此。替换(/^([+-])?(\d+)。(\d*)[eE]([-+]?\d+)$/,函数(x,s,n,f,c){
变量l=+c<0,i=n.length++c,x=(l?n:f).length,
c=((c=Math.abs(c))>=x?c-x+l:0),
z=(新数组(c+1)).join(“0”),r=n+f;
返回(s | |“”)+(l?r=z+r:r+=z).substr(0,i+=l?z.length:0)+(i
我得到了替换部分,但是当我看到函数(x,s,n,f,c)部分时,我就迷路了。我错过了什么
有人能帮我把它分解成更容易理解的部分吗?参见
基本上,x
是匹配的子字符串s
对应于第一对括号(([+-])
)匹配的部分,n
对应于第二对括号((\d+)
)匹配的部分,依此类推
匹配的字符串将被此函数返回的值替换。您可以将函数作为
replace()
调用的第二个参数传递
参数列表():
- 匹配子字符串-在您的情况下为
x
- 带括号的n个子匹配字符串-在您的示例2中:
和s
n
- 匹配子字符串的偏移量-在您的情况下
f
- 总字符串-在您的示例中为
c
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) : "");
});
};