文字形式チェック機能


正規表現を参照して、文字が指定する形式に一致するかどうかをチェックします。ボクはこの機能を用いて、日記のコメント欄に英数のみによるイタズラ入力を防いでます。


文字形式チェックの基本


$stringが、パターンに一致する場合に処理を行う、という構文です。パターンは「正規表現」を参照する形で行われます。

 if(preg_match("パターン", $string)){
   }

【オプション】
1.文字の種類を指定するオプション。
 [-] ・・・ 「正規表現の範囲」を示します。
   例)"/[A-Z]/" A-Zで構成される場合。
 [^-] ・・・ 「正規表現の範囲以外」を示します。
   例)"/[^A-Z]/" A-Z以外で構成される場合。
 s ・・・ 「任意の1文字」を示します。
   例)"/[A-Z]/s" A-Zのうち、どれか1文字でも含む場合。
 i ・・・ 「大文字小文字の区別なし」を示します。
   例)"/[A-Z]/i" A-Z、a-zで構成される場合。
 \n ・・・ 「改行」を示します。
   例)"/[\n]/s" 改行を1回でも含む場合。
 \s ・・・ 「スペース」を示します。
   例)"/[\s]/s" スペースを1回でも含む場合。

2.文字の位置を指定するオプション。
 ^ ・・・ 「文頭」を示します。
   例)"/^a/" 文頭がaで始まる場合。
 $ ・・・ 「文末」を示します。
   例)"/a$/" 文末がaで終わる場合。
 g ・・・ 「改行ごと」を示します。
   例)"/^a/g" 行頭がaで始まる場合。

3.繰り返しを指定するオプション。
 * ・・・ 「0回以上」を示します。
   例)"/a*/" aが0回以上含まれる場合。
 + ・・・ 「1回以上」を示します。
   例)"/a+/" aが1回以上含まれる場合。
 { } ・・・ 「指定回」を示します。
   例)"/a{5}/" aが5回含まれる場合。
 { , } ・・・ 「指定回(範囲つき)」を示します。
   例)"/a{3,5}/" aが3以上5回以下、含まれる場合。
   例)"/a{3,}/" aが3以上、含まれる場合。



半角英数記号リフレク


必殺、半角英数記号リフレク。「!-~」で半角英数および半角記号を指定し、「\n」で改行を、「\s」でスペースを指定します。これらのみで構成されるとき、エラーメッセージを出力する。ただそれだけのリフレクですが、効果は絶大☆

 if(preg_match("/^[!-~\n\s]+$/", $comment)){
   $error_msg = '半角英数のみは受け付けできません。';
   $error_fg = '1';
   }
 else {