2017-03-07 60 views
-2

我正在验证电话号码和分机号码,我需要做的是,如果没有可用的分机号码,我应该把一个零0)。我的问题是领域不接受数字“0”。Preg_match 0-9验证 - 不接受零(0)

我该如何解决?

这是我用过的表达式。

preg_match("/^[0-9]*$/", $ext) 

代码

<?php 

$Errext=""; 
if(isset($_POST["submit"])){ 

if (empty($_POST["ext"])) { 
      $Errext = "Please enter your extension #. If you do not have an extension # then enter zero(0)."; 
     } else { 
      $ext = test_input($_POST["ext"]); 
      if (!preg_match("/^[0-9]*$/", $ext)) { 
       $Errext = "Only Numbers is allowed"; 
      } else { 
       $extSuc = 1; 
      } 
     } 
} 

function test_input($data) { 
      $data = trim($data); 
      $data = stripslashes($data); 
      $data = htmlspecialchars($data); 
      return $data; 
     } 


?> 
<form method="POST" class="form-horizontal" action="" id="form1"> 
<div class="col-md-offset-1 col-md-5"> 
          <div class="form-group"> 
           <label for="ext">Ext</label> 
           <input class="form-control" name="ext" type="number" id="ext" value="<?php echo $ext; ?>"/> 
           <span> 
            <?php echo $Errext; ?> 
           </span> 
          </div> 
         </div> 

    <button name="submit" value="Submit" class="btn btn-primary col-md-offset-10 col-md-2">Submit</button> 
</form> 

您可以在这里运行代码

http://phpfiddle.org/

感谢。

我刚刚解决了这个问题。

if ($_POST["ext"]=='') { 

对不起,麻烦就大了,感谢很多的帮助。

+1

你究竟想在这里匹配什么? –

+0

数字从0-9 sir –

+0

表达我用不接受零..只是零 –

回答

0

这不会接受零:

preg_match("/^[1-9]*$/", $ext) 
+0

对不起先生,如果我的问题不清楚..我使用的表达式不接受我的输入,如果我只是把零。 –

0

你想那是......

var_dump(preg_match("/^[1-9]*$/", '0987777777')); // return 0; 
+0

谢谢先生,但它不工作 –

0

只要你需要删除0,并与你的范围最小更换。 preg_match("/^[1-9]*$/", '0987777777')

1

你永远不会输入你的正则表达式。 0empty。如果VAR存在且非空,非零

if (empty($_POST["ext"])) { 

返回FALSE。否则返回TRUE。

尝试if (isset($_POST["ext"])) {。您也可以使用

http://php.net/manual/en/function.ctype-digit.phphttp://php.net/manual/en/function.is-numeric.php验证字符串是数字......或者您可以更新正则表达式以要求存在一个数字。 *允许字符串为空,使其成为+并且必须存在值。

^[0-9]+$ 
+0

我试过了,但它不工作 –

+0

'var_dump($ _ POST [“ext”])'这是什么?还输出'$ Errext',它是什么? – chris85

+0

@misdirection我看到一个合适的用户名。 – chris85