Javascript中高效的USD格式

Javascript中高效的USD格式,javascript,string,Javascript,String,假设我有一个字符串:33400298.57 我已经编写了一个函数(太长、太臃肿、太不合标准,无法在此处发布),它将该函数格式化为: 33400298.57 肉类逻辑是每隔三位插入逗号-小数点的左边。是否有一个使用正则表达式的单行解决方案可以实现这一点?目前,我正在拆分、反转、循环插入、反转并再次连接。不用说,这是不理想的 我在找这样的东西: 随机颜色生成器:'#'+Math.floor(Math.Random()*16777215).toString(16) 谢谢。因为我在JavaScript上

假设我有一个字符串:33400298.57

我已经编写了一个函数(太长、太臃肿、太不合标准,无法在此处发布),它将该函数格式化为:

33400298.57

肉类逻辑是每隔三位插入逗号-小数点的左边。是否有一个使用正则表达式的单行解决方案可以实现这一点?目前,我正在拆分、反转、循环插入、反转并再次连接。不用说,这是不理想的

我在找这样的东西:

随机颜色生成器:'#'+Math.floor(Math.Random()*16777215).toString(16)


谢谢。

因为我在JavaScript上使用jQuery,所以我会使用jQuery插件。大概是这样的:


如果您使用的是不同的JavaScript库,我会寻找该库的插件我会避免编写您自己的格式设置方法。不要重新发明方向盘。

好吧,有一个数字是
到本地校准的。

Number(12345.67).toLocaleString();

但是,它是特定于区域设置的,所以请注意emptor。

这个带有正则表达式的性感小数字怎么样:

s = "33400298.57";
s.replace(/(?!^)(\d\d\d)(?=(\d\d\d)*\.)/g, ',$1'); // 33,400,298.57

查看此链接:谢谢,但我真的不想通过查找库来查找行。这也是一个付费的。你不需要为一行程序编写一个完整的方法。它是一个正则表达式,但也很性感。