字符串不能以零开头


String cannot start with zero

我有一个字符串,我想用正则表达式检查。不允许它以 0 开头。因此,请参阅以下示例:

012344 = invalid
3435545645 = valid
021 = invalid
344545 = valid

等。

这个正则表达式在 PHP 中看起来如何?

附言。这一定是一个正则表达式解决方案!

正则表达式应如下所示:

^[1-9][0-9]*$

PHP代码 :

<?php
    $regex = "#^[1-9][0-9]*$#";

    function test($value, $regex)
    {
          $text = "invalid";
          if(preg_match($regex, $value)) $text = "valid";
          return $value+" = "+$text+"'n'r";
    }
   echo  test('012345', $regex);
   echo  test('12345', $regex);
?>
好吧,

这将是一个简单的/[1-9][0-9]*/.下次请更好地研究您的问题。这也可以帮助您: 正则表达式测试仪

编辑:

是的,答案被否决了,因为它缺少锚点并且似乎是错误的。为了完整起见,我发布了我将用于此正则表达式的 php 代码。不,这没有错。这可能不是最优雅的方式,但我喜欢检查正则表达式是否与整个字符串匹配。一个原因是,要调试正则表达式并查看它实际匹配的内容,我只需要在return $matches[0]之后注释掉=== $value

<?php
  function matches($value) {
    preg_match("/[1-9][0-9]*/", $value, $matches);
    return $matches[0] === $value;
  }
  //Usage:
  if (matches("1234")) {
     //...
  }
?>