2012-08-09 19 views
0

我正在创建一个用户必须输入多个数字的网站。
Theese号已被验证(非法字符等),并将其转换为格式:PHP中的数字转换

1234.56 

我的问题是我怎么转换(由于不同的国家符号)十进制/千的不同组合-delimiters:

1234,56/1.234,56/1234.56/1,234.56 

预期的结果应该永远是:1234.56

+1

定义*用户应该如何输入数字,至少是小数点分隔符是什么。 – deceze 2012-08-09 08:38:49

+0

你能否假设总会有两位小数? ..或者总会有小数? – MatsLindh 2012-08-09 08:41:59

+0

不幸的是我不能承担任何事情。 这是一个没有客户端验证的输入字段,所以用户可能(错误地)键入alpha-chars,在这种情况下,我的validaion函数应该返回一个错误。 所以我必须做所有的验证服务器端 – user1586912 2012-08-09 09:07:44

回答

1

如果你总是有2位小数(至于价格左右),你可以只取最后一个点或逗号,在此位置拆分输入字符串并删除所有非数字字符(和。在你的情况)从第一部分。

如果你不能保证有两位小数,你需要通过检查,如果在最后一个分隔符后面有3个数字(以确定是否有小数位),会变得棘手。

由于显然您需要支持更大的一组国家,所以通用解决方案可能是最佳选择。也许有一些Javascript,它也解决了这个问题(在提交表单之前转换数字)。