我正在尝试编写一个函数来验证给定的字符串是否是有效的数字。我知道我可以使用 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/