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