Regex允许数字和空值

问题描述 投票:0回答:2

这里是我的正则表达式:/^\d+(.\d{1,2})|null?$/

但是它没有用

我想允许两个小数点。

Like :
123.23 / true
123.568 / false
null / true
php regex
2个回答
1
投票

您需要重新组织分组:

^(?:\d+(?:\.\d{1,2})?|null)$

RegEx Demo

RegEx详细信息:

  • ^:开始
  • (?::启动非捕获组
    • \d+(?:\.\d{1,2})?:匹配整数或浮点数
    • |:OR
    • [null:匹配null
  • ):结束非捕获组
  • $:结束

0
投票

您可以尝试用这种方法用Null-检查preg_match()或2个小数位>

<?php
  function validateTwoDecimalOrNull($number)
  {
     if($number == null || preg_match('/^[0-9]+\.[0-9]{2}$/', $number))
       return true;
     else
       return false;
  }

  echo "Greater than 2 decimal places=".validateTwoDecimalOrNull(12.22444);
  echo PHP_EOL;
  echo "Null value=".validateTwoDecimalOrNull(null);
  echo PHP_EOL;
  echo "2 decimal places=".validateTwoDecimalOrNull(12.22);
  ?>

工作演示:

https://3v4l.org/vLZs4
© www.soinside.com 2019 - 2024. All rights reserved.