繁体   English   中英

PHP货币正则表达式

[英]PHP Currency Regular Expression

我试图找到一块正则表达式来匹配货币值。

我想只匹配数字和1小数点即

允许

  • 10
  • 100
  • 100.00

不允许

  • 阿尔法字符
  • 100,00
  • +/- 100

我有搜索,并尝试了一些没有运气。

希望你能提出建议

这个怎么样

if (preg_match('/^\d+(\.\d{2})?$/', $subject))
{
   // correct currency format
} else {
  //invalid currency format
}
if (preg_match('/^[0-9]+(?:\.[0-9]+)?$/', $subject))
{
    # Successful match
}
else
{
    # Match attempt failed
}

附注 :如果要限制所需的小数位数,可以执行以下操作:

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

所以

100.000

会匹配,而

100.0001

惯于。

如果您需要任何进一步的帮助,请发表评论。

PS如果可以,请使用上面发布的数字格式器。 本机功能总是更好(和更快),否则此解决方案将为您提供良好的服务。

您可能想要考虑使用正则表达式的其他替代方法。

例如,有NumberFormatter类,它提供灵活的数字和货币解析格式化 ,并具有内置国际化支持。

它内置于PHP 5.3及更高版本中,可作为早期版本的PHP 5的扩展。

试试这个正则表达式:

^(?:[1-9]\d+|\d)(?:\.\d\d)?$

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM