Javascript 如何制作允许解释欧盟和美国十进制符号的正则表达式语句

Javascript 如何制作允许解释欧盟和美国十进制符号的正则表达式语句,javascript,regex,replace,decimal,comma,Javascript,Regex,Replace,Decimal,Comma,我一直在研究一个棘手的问题,并从这个网站的程序员和开发人员那里得到了很多帮助。非常感谢那些做出贡献的人。你是无价之宝 使用Javascript和HTML。我是个新手 我目前的问题是 我正在尝试开发一个度量值到英语转换的网站,该网站在HTML文本框(无格式)中采用数字值: 我希望用户有多种方式将数据输入转换工具,因为它将在国际上使用。所以 1200 或 1.200 或 1200 parseFloat是否应将所有内容解释为1200.00 1200.12 或 1.200,12 或 1200.12 或

我一直在研究一个棘手的问题,并从这个网站的程序员和开发人员那里得到了很多帮助。非常感谢那些做出贡献的人。你是无价之宝

使用Javascript和HTML。我是个新手

我目前的问题是

我正在尝试开发一个度量值到英语转换的网站,该网站在HTML文本框(无格式)中采用数字值:

我希望用户有多种方式将数据输入转换工具,因为它将在国际上使用。所以

1200 或 1.200 或 1200 parseFloat是否应将所有内容解释为1200.00

1200.12 或 1.200,12 或 1200.12 或 1200,12 应全部解释为1200.12

我也希望小数能够被解释。 0.123 或 0123
as 0.123

我意识到我需要去掉千个分隔符(无论是逗号还是句点),如果是逗号,则将最后一个小数点设置为句点。这个站点上的一个开发人员给了我一个REGEX语句,我可以将它与javascript replace语句结合使用来处理这个问题

trim = trim.replace(/[.,](?=.*[.,])/g, "").replace(",", "."); 
//care of recursive on stack overflow
这似乎解决了问题,只有一个例外。任何时候使用千位分隔符输入数据而不使用小数点时,此代码将分隔符解释为十进制,其值从12345变为12.345或(以及EU表示法)。假设用户将使用逗号,但不使用小数,这是一个麻烦的问题,因为结果将不正确。 我该怎么补救呢?我是否可以对正则表达式进行调整,以确定逗号是千位分隔符(1.234)还是小数点(1234),句点是千位分隔符(1234)还是小数点(1.234)

提前感谢,


RP

您将如何确定什么是
1885
?不,您不能
1.234和1234在不同的地方意味着不同的东西。然后,您必须询问用户正在使用哪个小数点分隔符,或者告诉他应该使用哪个小数点分隔符。您的一个示例说明
“1200”
应产生
1200
,而另一个示例说明
“0123”
应产生
0.123
。确定差异的规则是什么?你们正好击中了问题的头部。我认为解决办法是选择一种格式,告诉用户如何输入数据,或者让用户指定他们想要使用的符号,并让计算机应用适当的解释。看看人类能做什么,而计算机不能!我们仍然更聪明:哦!