检查货币字段仅包含1个完整停止

时间:2010-07-28 04:55:15

标签: regex

有人可以帮我写一个正则表达式来检查货币字符串是否为特定格式 - 300.00

它只能在'。'之前和之后都有数字。但是我只想要一个'。'的出现。

因此300.00。或300.0.0无效。

问候

5 个答案:

答案 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