如何将 preg_match in php 用于固定范围的数字?

how to preg_match in php for numeric with fixed range?

如何在 php 中 preg_match 获取固定范围的数字?

我想在文本框中允许 8 位数字而不以 0 开头。

例-12345678

以下是我的一段代码。

if(isset($_POST['submit1'])) {
    if(empty($_POST["phone"]))
 {
  $error .= '<p><label class="text-danger">Please Enter your phone number</label></p>';
 }
 else{
     if(!preg_match("/^[1-9][0-9]{8}$/",$PhNum))
  {
   $error .= '<p><label class="text-danger">Only 8 digit numbers are allowed</label></p>';
  }
 }
}

谢谢。

您的模式略有偏差,您应该期待 7 位非零初始数字后的数字:

if (!preg_match("/^[1-9][0-9]{7}$/", $PhNum)) {
    $error .= '<p><label class="text-danger">Only 8 digit numbers are allowed</label></p>';
}

概念上:

[1-9][0-9]{7}  <-- seven digits, for a total of 8 digits
^^^ one digit