【问题标题】:preg_match with number PHPpreg_match 与数字 PHP
【发布时间】:2015-05-06 14:57:19
【问题描述】:

当我使用这个时:

preg_match('/^[0-9]{1,10}(\.[0-9]{1,9})?$/', 0.0001);

返回值为1,当我使用这个时:

preg_match('/^[0-9]{1,10}(\.[0-9]{1,9})?$/', 0.00001);

返回值为0。

有人可以说我为什么吗?谢谢!

【问题讨论】:

    标签: php regex numbers preg-match


    【解决方案1】:

    因为小浮点数通常使用指数表示法显示,所以0.00001 被转换为1.0E-5,这与正则表达式不匹配。如果您只是这样做,您可以看到这一点:

    echo 0.00001;
    

    正则表达式应该与字符串一起使用,而不是数字。

    preg_match('/^[0-9]{1,10}(\.[0-9]{1,9})?$/', '0.00001');
    

    【讨论】:

    • 感谢您的出色回答! :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-11
    • 1970-01-01
    • 1970-01-01
    • 2022-01-09
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    相关资源
    最近更新 更多