带或不带括号的$ amount字段的正则表达式

时间:2013-06-25 15:16:58

标签: regex xsd-validation

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

2 个答案:

答案 0 :(得分:2)

<强>更新
根据以下评论和有关R2格式的问题中的评论,修改后的正则表达式将是:

((\($\d+\.\d{2}\))|($\d+\.\d{2}))

OLDER ANSWER:
试试这个正则表达式:

\$\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>

答案 1 :(得分:1)

试试这个:

^(\(\$\d+\.\d{2}\)|\$\d+\.\d{2})$