正则表达式 - 剥离非数字并删除分(如果有)
我目前正在开发一个 PHP 项目,需要一些正则表达式的帮助。我希望能够获取用户输入的货币值并删除所有非数字和小数位/分。
例如:
“2.000,00”到“2000”
“$2.000,00”到“2000”
“2abc000”到“2000”
“2.000”到 2000
(我使用的是非美国货币格式)
我该如何执行此操作?我很感激你的帮助 - 谢谢
I'm currently working on a project in PHP and I'm in need of some Regex help. I'd like to be able to take a user inputted monetary value and strip all non numeric and decimal places/cents.
Ex:
'2.000,00' to '2000'
'$ 2.000,00' to '2000'
'2abc000' to '2000'
'2.000' to 2000
(I'm using non US currency formatting)
How can I do this? I'd appreciate the help - Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
你可以这样做:
You can do:
应该用空字符串替换非数字字符。
that should replace non numeric chars with empty strings.
这应该做你想做的。
一旦找到第一个数字,匹配就会开始,当它遇到既不是数字也不是点的东西时(即示例中的逗号或字符串结尾),匹配就会停止
编辑:忘记删除里面的字母价值第一。
(只是个人意见,但如果用户写入的字符不是数字、点、逗号或货币符号,我会拒绝输入,而不是尝试清理它)
This should do what you want.
The match will start as soon as the first number is found, and stop when it hits something that is neither a number nor a dot (ie. a comma or the end of the string in your examples)
EDIT : forgot to remove the letters inside the value first.
(Just a personal opinion, but if a user writes chracters that are not numbers, dots, commas or currency symbols I would refuse the input instead of trying to clean it)
在客户端,我在输入上使用类:
On the client side I use classes on the inputs: