【问题标题】:regex int or float正则表达式 int 或 float
【发布时间】:2011-03-25 05:47:55
【问题描述】:

我的正则表达式不适用于单个数字

/^[0-9]{1,7}\.?[0-9]{1,2}$/

我需要它来处理无符号数:

1 (single digit numbers, without fractions) - currently it fails on them
1.0; 0.31 (floating point numbers)

小数前的数字可以是1-7位;在分数 1-2 位之后。

谢谢!

【问题讨论】:

  • “无符号”和“浮点”是机器内部的,与它们的人类可读表示无关。

标签: php regex pcre


【解决方案1】:

您指定必须有 1-7 位数字,然后是可选的小数点,然后是 1-2 位数字。试试:

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

请注意,这不允许尾随小数位(即“1.”)。如果你想允许这样做,这应该可行:

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

【讨论】:

  • 同时第二个表达式允许8-9位数字。
【解决方案2】:

将小数点和其后的数字设为可选。例如

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

这样你可以有 1 - 7 位数字 1 - 7 位数字后跟小数点后跟 1 或 2 位数字但是如果你有数字小数点,但没有其他无效的数字。

【讨论】:

    猜你喜欢
    • 2012-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-10
    • 2017-04-23
    • 1970-01-01
    相关资源
    最近更新 更多