パスワード入力でアルファベットと数字と記号だけであることを確認するためのphp文。

記号をどうすればいいのかわからず一つづつ書いてたけど[!-~]にすればいいのね。
[!-~]でアルファベットの大文字小文字、数字に!”#$%&'()=~|-^@[;:],./`{+*}_<>?の記号がチェックできる。

ASCII文字コード

<form action="" method="post">

パスワードを入力:</td><td><input type="password" name="Pwd" size="32" maxlength="32" value="">

<input type="submit" name="Check" value="確認">

<br>

</form>

<?php

if(isset($_POST['Check'])){

$Pwd = $_POST['Pwd'];

     if (!empty($Pwd)){

          if(strlen($Pwd) < 8){

          echo "8文字以内。";

          $PwdMessage = "<b><font size="+1" color="#ff0000">※パスワードは8文字以上にして。</font></b>";

          }

          elseif(strlen($Pwd) >= 8){

               if(preg_match("/^[!-~]+$/", $Pwd)){

               echo "<b><font size="+1" color="#0000ff">OK</font></b>";

               }

               else {

               echo "<b><font size="+1" color="#ff0000">※利用可能でない文字が含まれている。利用できる文字は半角英数字と記号。</font></b>";

               }

          }

     }

}

?>