文字形式チェック機能
正規表現を参照して、文字が指定する形式に一致するかどうかをチェックします。ボクはこの機能を用いて、日記のコメント欄に英数のみによるイタズラ入力を防いでます。
文字形式チェックの基本
$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以上、含まれる場合。
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 {
$error_msg = '半角英数のみは受け付けできません。';
$error_fg = '1';
}
else {
