我需要使用正则表达式来验证输入 $10.00 0r ($10.00) 中的以下金额格式......也就是说金额应该是 R2 格式,带有或不带括号的 $ 符号。如果是其他格式,则验证必须失败。请就此提出建议。
问问题
1293 次
2 回答
2
更新:
根据下面的评论和关于 R2 格式问题的评论,修改后的正则表达式将是:
((\($\d+\.\d{2}\))|($\d+\.\d{2}))
较早的答案:
试试这个正则表达式:
\$\s*\(?\d+(\.\d+)?\)?
\$
- 匹配美元符号
\s*
- 匹配美元符号和数字或大括号中的任何空格
\(?
- 匹配可选的左大括号
\d+
- 匹配数字的整数部分
(\.\d+)?
- 匹配可选的小数部分和点
\)?
- 匹配可选的右大括号
所以你可以试试这个 xsd 验证器:
<xs:simpleType name="CurrencyFormat">
<xs:restriction base="xs:string">
<xs:pattern value="\$\s*\(?\d+(\.\d+)?\)?" />
</xs:restriction>
</xs:simpleType>
于 2013-06-25T15:32:01.460 回答
1
试试这个:
^(\(\$\d+\.\d{2}\)|\$\d+\.\d{2})$
于 2013-06-25T15:33:15.333 回答