1

我需要使用正则表达式来验证输入 $10.00 0r ($10.00) 中的以下金额格式......也就是说金额应该是 R2 格式,带有或不带括号的 $ 符号。如果是其他格式,则验证必须失败。请就此提出建议。

4

2 回答 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 回答