2017-03-07 70 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