我正在创建一个用户必须输入多个数字的网站。
这些数字必须经过验证(对于非法字符等)并转换为以下格式:
1234.56
我的问题是如何转换(由于不同的国家符号)十进制/千分隔符的不同组合:
1234,56 / 1.234,56 / 1234.56 / 1,234.56
预期结果应始终为:1234.56
我正在创建一个用户必须输入多个数字的网站。
这些数字必须经过验证(对于非法字符等)并转换为以下格式:
1234.56
我的问题是如何转换(由于不同的国家符号)十进制/千分隔符的不同组合:
1234,56 / 1.234,56 / 1234.56 / 1,234.56
预期结果应始终为:1234.56
如果您总是有 2 位小数(至于价格左右),您可以只取最后一个点或逗号,在该位置拆分输入字符串并从第一个删除所有非数字字符(和 . 在您的情况下)部分。
如果你不能保证有两位小数,你需要通过检查,如果最后一个分隔符后面有 3 个数字(来决定是否有小数位)变得棘手。
由于显然您需要支持更多的国家/地区,因此通用解决方案可能是最佳选择。也许有一些 Javascript 也可以解决问题(在提交表单之前转换数字)。
您可以使用 zend 框架组件: Zend_Locale_Format::getNumber() 函数。http://framework.zend.com/manual/en/zend.locale.parsing.html