创建函数正常数字格式?

Posted

技术标签:

【中文标题】创建函数正常数字格式?【英文标题】:Create function normal number formatting? 【发布时间】:2011-12-29 18:18:41 【问题描述】:

我试过下面的代码,但是不起作用会触发错误:

val.reverse is not a function

我该如何解决?

演示: http://jsfiddle.net/9ysZa/

//I want this output: 1,455,000
function num(val)
         var result = val.reverse().join("")
                          .match(/[0-9]1,3/g).join(",")
                          .match(/./g).reverse().join("");
    return result     

alert(num('1455000'))

【问题讨论】:

Comma-formated numbers in jQuery的可能重复 【参考方案1】:

DEMO

reverseArray.prototype 上的一个方法——它适用于数组。由于val 是一个字符串,您需要调用val.split('') 将其放入数组中。

function num(val)
         var result = val.split('').reverse().join("")
                          .match(/[0-9]1,3/g).join(",")
                          .match(/./g).reverse().join("");
    return result     

alert(num('1455000'));

提醒您正在寻找的结果。

编辑

根据您的评论,您似乎想在 number 1455000 而不是 string '1455000' 上运行它。如果是这样,在split() 之前添加一个toString 调用将起作用(并且对字符串**和数字都有效)。

这是updated fiddle

【讨论】:

我自己编码这个错误:Uncaught TypeError: Object 1455000 has no method 'split' 如何解决? 为安全起见添加toString()var result = val.toString().split("").reverse().join("").match(/[0-9]1,3/g).join(",").split("").reverse().join(""); @JulianD。 - 是的 - 在你写评论时正在输入。

以上是关于创建函数正常数字格式?的主要内容,如果未能解决你的问题,请参考以下文章

关于函数的创建和调用

VBA 用户定义函数返回奇怪或没有结果

为啥会出现“数字格式异常”?

javascript中的数字格式(可以是函数)

字符串到两个数字

My SQL取得当前时间的函数是啥?格式化日期的函数是啥?