创建函数正常数字格式?
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
reverse
是Array.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。 - 是的 - 在你写评论时正在输入。以上是关于创建函数正常数字格式?的主要内容,如果未能解决你的问题,请参考以下文章