我一直在使用这个正则表达式来验证美元金额输入。
parsley-regexp="^\$?[0-9][0-9\,]*(\.\d{1,2})?$|^\$?[\.]([\d][\d]?)$"
我不再希望允许$符号,只是有效金额。我需要做出哪些改变?
答案 0 :(得分:5)
简单删除\$?
(可选的转义美元符号 - 您需要将其转义为$
是保留的正则表达式字符):
// These are regex characters - keep them v v
parsley-regexp="^\$?[0-9][0-9\,]*(\.\d{1,2})?$|^\$?[\.]([\d][\d]?)$"
// Remove these ^^^ ^^^
答案 1 :(得分:1)
要从表达式中删除$ validation,请使用:
parsley-regexp="[0-9][0-9\,]*(\.\d{1,2})?$|[\.]([\d][\d]?)$"
但是,您可能希望修复表达式以仅采用有效的货币输入。例如:
parsley-regexp="^\$?((\d{1,3}(\,\d{3})*)|(\d+))(\.\d{1,2})?$";
正面结果:$ 1,234,456.00 | 1.5美元| $ 1,00
负面结果:1,23美元| $ 1 ,,,。24
这就是它的工作原理
^\$? - begins with one $ symbol
((\d{1,3}(\,\d{3})*) - has 1-3 digits, followed by 1 or more occurrences of 'comma and 3 digits'
|(\d+)) - Or look for 1 or more digits
(\.\d{1,2})? - one or more occurrences of . followed by 1-2 digits
要删除$ sign,只需删除^\$?
:
parsley-regexp="((\d{1,3}(\,\d{3})*)|(\d+))(\.\d{1,2})?$";