如何";“不幸”;数字字符串?JavaScript

如何";“不幸”;数字字符串?JavaScript,javascript,regex,Javascript,Regex,因此,我知道如何将字符串或整数(如2000设置为2K)的格式,但如何将其反转 我想做一些类似的事情: var string = "$2K".replace("/* K with 000 and remove $ symbol in front of 2 */"); 我怎么开始?我不是很好的正则表达式,但我已经花了更多的时间来学习它们。如果你能帮忙,我当然很感激。对于百万的M(最后加上000000)或者十亿的B(最后加上000000000),有可能做同样的事情吗 将输出为 2000 我将采取另

因此,我知道如何将字符串或整数(如
2000
设置为
2K
)的格式,但如何将其反转

我想做一些类似的事情:

var string = "$2K".replace("/* K with 000 and remove $ symbol in front of 2 */");
我怎么开始?我不是很好的正则表达式,但我已经花了更多的时间来学习它们。如果你能帮忙,我当然很感激。对于百万的M(最后加上000000)或者十亿的B(最后加上000000000),有可能做同样的事情吗

将输出为

2000

我将采取另一种方法,因为最好的方法是改变你的应用程序,使其不会丢失原始的数字信息。我认识到这并不总是可能的(例如,如果您正在刮取格式化的值…),但对于其他有类似问题的用户来说,这可能是一种有用的思考方式

不要只存储数值或显示值(然后稍后尝试转换回数值),请尝试更新应用程序以将两者存储在同一对象中:

var value = {numeric: 2000, display: '2K'}
console.log(value.numeric); // 2000
console.log(value.display); // 2K

这里的例子有点简化,但是如果你像这样传递你的值,你不需要首先转换回来。它还允许您根据区域设置、货币或舍入更改格式值,并且不会丢失原始值的精度。

如果您知道如何替换,只需将
$
替换为零,
K
替换为
000
M
替换为
000000
B
with
000000000
…我假设您只使用SI表示法格式,并且后缀没有本地化为许多不同的语言?哇。这正是我一直在寻找的回应,而且效果很好。非常感谢。如果恶性通货膨胀来临,你可能需要:
+val.replace(/^\$(\d+)([KMBT])$/,函数({uu,v,m){return+v+{K:'000',m:'000000',B:'000000000',T:'000000000000000000'}[m];})`
var value = {numeric: 2000, display: '2K'}
console.log(value.numeric); // 2000
console.log(value.display); // 2K