有人可以帮我写一个正则表达式来检查货币字符串是否为特定格式 - 300.00
它只能在'。'之前和之后都有数字。但是我只想要一个'。'的出现。
因此300.00。或300.0.0无效。
问候
答案 0 :(得分:2)
^[0-9]+\.?[0-9]*$
这意味着,字符串(^
)的开头,一个或多个数字([0-9]+
),可选句点(\.?
),然后是0或更多位数,则结束串。您可以根据需要进行修改,例如允许字符串以句点开头(首先更改为+ *
)或强制使用句点(删除?
)。
答案 1 :(得分:2)
如果你想表示一个严格对货币正确的字符串,那么你很可能想要^\d+\.\d{2}$
之类的字符串,因为你通常用2位小数表示货币。如果您不挑剔,那么^\d+\.\d+$
将匹配任意数量的小数位,或^\d+\.?\d*$
将匹配整数以及包含任意小数位数的数字。
答案 2 :(得分:1)
我认为这样做:^\d+\.\d+$
这将匹配一个由一个或多个数字组成的字符串,恰好是一个'。'和一个或多个数字。
答案 3 :(得分:1)
使用此正则表达式进行匹配 -
^\d+\.\d+$
答案 4 :(得分:1)
根据@ mathew的回答,您可能希望将正则表达式锚定在字符串的开头和结尾(分别为^和$)。根据@eldarerathis,您可能希望限制小数点后的位数。您可能还希望在前面允许可选的$符号;并且您可能希望允许用户完全删除分的组件。所以:
^\$?\d+(\.\d\d)?$
哪个是
^ start of string \$? optional dollar sign \d+ at least 1 digit. (\.\d\d)? optional decimal point followed by exactly two digits (you could use \d{2} here as well) $ end of string