2016-04-24 14 views
-2

albumID入力が大文字の2文字と3つの数字であることを検証する必要があります。私はこのregex preg_match大文字のアルファベットとアルファベットのalbumIDを一致させることができません。

preg_match('/([A-Z]{2}[0-9]{3})/', $albumid) 

が動作する必要があることを確認するためにhttp://regexr.com/ともhttp://www.tutorialspoint.com/php/php_preg_match.htmを使用しますが、そうではありません:あなたは、あなたを$albumid空作っている

$albumidErr = $albumid = ""; 
if ($_SERVER["REQUEST_METHOD"] == "POST") { 
    if (preg_match('/([A-Z]{2}[0-9]{3})/', $albumid)) 

:あなたのコードで

 <?php 
     // define variables and set to empty values 
      $albumidErr = $albumid = ""; 
     if ($_SERVER["REQUEST_METHOD"] == "POST") { 
      if (preg_match('/([A-Z]{2}[0-9]{3})/', $albumid)) 
      { 
      $albumid = test_input($_POST["albumid"]); 
      $albumidErr = print $albumid; 
      } 
      else { 
      $albumidErr = " Album ID must be 2 Uppercase letters and 3 numbers (i.e. BI010)"; 
      } 

     } 
     ?> 
     <form method="post" action=" 
     <?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"> 
     <p> 
      <label for="albumid">*Album ID:</label> 
      <?php echo $albumidErr;?><br> 
      <input type="text" name="albumid" id="albumid"/> 
     </p> 

     <p> 
      <input type="submit" name="submit" id="submit" value="submit"/> 
     </p> 
    </form> 
+0

[その正しくない – rock321987

+0

可能な重複が少なくとも3をチェックするための正規表現を必要とするので、それは動作しません大文字、3小文字、3桁および3特殊文字](http://stackoverflow.com/questions/16689167/need-regular-expression-for-checking-at-least-3-uppercase-3-lowercase-3-digits ) – rock321987

+1

あなたが正確な仕様/要件を提供し、あなたの正規表現dあなたは働かなくてはなりません。あなたのコードでは、 'BI010'の例を提供しますが、' [A-Z] {2} [0-9] {3} 'とマッチします。あなたは*全体の文字列*(完全な文字列の一致)としてそれを一致させますか? [** PHP preg_match full string **](http://stackoverflow.com/questions/16375856/php-preg-match-full-string)を参照してください。 –

答えて

0

この空の文字列に正規表現をマッチさせようとしているのですが、もちろんマッチしません。

私はあなたがしたいと思います:

$albumidErr = $albumid = ""; 
if ($_SERVER["REQUEST_METHOD"] == "POST") { 
    if (preg_match('/([A-Z]{2}[0-9]{3})/', $_POST["albumid"])) 
    //          ^^^^^^^^^^^^^^^^^ 

、あなたがアンカーを追加することができます。

$albumidErr = $albumid = ""; 
if ($_SERVER["REQUEST_METHOD"] == "POST") { 
    if (preg_match('/^([A-Z]{2}[0-9]{3})$/', $_POST["albumid"])) 
+0

ありがとうございます。私はそのような愚かなミスだったことを知っていた、それを見ることができなかった。 – towhomitmay11

+0

@ whitness11:問題ありません、すべての人がこの種の間違いを犯しました – Toto

関連する問題