PHP:验证给定的字符串是有效的数字

标签 php preg-match

我正在尝试编写一个函数来验证给定的字符串是否是有效的数字。我知道我可以使用 PHP is_numeric(),但要求是该函数需要在以下情况下将逗号识别为有效:

  • 逗号位于数字的整数部分
  • 每个逗号后面有 3 位整数
  • 每个逗号至少留有一位数字
  • 逗号左侧的连续数字不得超过 3 个

例如: 它应该识别: 1,000,230 而不是 ,021,201 或 1,023,12 它还应该识别前面的正数、负数和美元符号。

我正在考虑使用 preg_match 来检查数字格式,但我对 preg_match 不熟悉。你能帮我吗?任何提示表示赞赏!谢谢!

最佳答案

不需要正则表达式。去掉逗号,然后使用 number_format 重新格式化。如果这与您的原始输入相符,那就很好。

if (number_format(str_replace(',', '', $number)) === $number) {
   // pass
}

您可以通过向 number_format() 提供第二个参数来调整处理小数的方式。

关于PHP:验证给定的字符串是有效的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38151924/

相关文章:

php - CakePHP 虚拟字段发送 header ?

php - 用于保护 LDAP 服务器的 ldap_bind 返回 "Unknown CA"

php - Ruby 通过模板从字符串中选择数据,就像 php preg_match 做的那样

php preg_match 日期格式 "yyyy-MM"

php - 正则表达式用于匹配除空白之外的任何字符

php - SendGrid SMTP 与联系表单集成

php - CodeIgniter session 和常规 session 可以共存吗?

php - 如何在aftersave hooks逻辑中查找记录id-SuiteCRM

php preg_match() 多种模式