用于货币的PHP正则表达式

时间:2012-05-18 06:47:44

标签: php regex

我很想找到美元的正则表达式。我的输入和规则是只能有数字0到9和一个可选的deciaml点。如果小数存在,则必须有两个0 t 9位数。

所以除了: 1000 1000.99

但不是: 10001.1 1000。 1000 $ 100.9

3 个答案:

答案 0 :(得分:6)

你对正则表达式有什么了解吗? 让我解释一下解决方案:

1)你想要数字,那些是[0-9]

2)你想要至少其中一个,+

3)然后可能会有某些内容,让我们把它放在括号中,0或1次意味着?

所以你现在有[0-9]+(something)?

4)现在你想要的东西是小数点,dot是正则表达式中的特殊字符,所以你必须将其转义\.

5)然后你再次想要数字,其中两个是{2}

在这里,完整的表达:

 $expression="/[0-9]+(\.[0-9]{2})?/";

答案 1 :(得分:3)

你走了:

/^[0-9]+(?:\.[0-9]{2}){0,1}$/

答案 2 :(得分:0)

这将检查任意数量:

/^(?:[0-9]{1,3})(?:,[0-9]{3})*(?:|\.[0-9]+)$/

E.g。它将验证:

1,432.33
  342
    1.2
    0.343