小金井にあるWEB制作会社の備忘録

MEMORANDUM

メールの入力値をPHPの正規表現「preg_match」でチェック

メールフォーム等での入力値チェック(バリデーション)。
PHPの「preg_match」(正規表現)を使用した代表的なものをメモ。

PHP

//空入力チェック
if(empty($val)){
	//エラー処理
}

//平仮名入力チェック
if(!preg_match('/^[ぁ-ん]+$/u', $val)){
	//エラー処理
}

//片仮名入力チェック
if(!preg_match('/^[[ァ-ン]|ー]+$/u', $val)){
	//エラー処理
}

//メールチェック
if(!preg_match('/^[a-zA-Z0-9_\.\-]+@(([a-zA-Z0-9_\.\-]+\.)+[a-zA-Z0-9]+$)/', $val)){
	//エラー処理
}

//郵便番号チェック
if(!preg_match('/^\d{3}[-]\d{4}$|^\d{7}$/', $val)){
	//エラー処理
}

//電話番号チェック
if(!preg_match('/^\d{10}$|^\d{11}$/', $val)){
	//エラー処理
}

//URLチェック
if(!preg_match('/^http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w-.\/?%&=]*)?/', $val)){
	//エラー処理
}

//スパムチェック(日本語で書かれていないもの)
if(!preg_match('/[ぁ-ん]/', $val)){
	//エラー処理
}

「$val」の部分にポストデータ($_POST)を入力して、該当する処理へ。
その他の内容は下記を参照。
状況に合わせてエスケープ処理は必要。

全て数値(半角)
/^[0-9]+$/

半角アルファベット(大文字・小文字)
/^[a-zA-Z]+$/

半角アルファベット(大文字・小文字・数値)
/^[a-zA-Z0-9]+$/

全角ひらがな
/^[ぁ-ん]+$/

全角カタカナ
/^([ァ-ン]|ー)+$/

全角ひらがな、カタカナ
/^[ぁ-んァ-ン]+$/

半角カナ
/^[ァ-ン゙゚]+$/

漢字
/^[一-龥]+$/

全角ひらがな、漢字
/^[一-龥ぁ-ん]/

全角ひらがな、全角カタカナ、漢字
/^[ぁ-んァ-ン一-龥]/

e-mail
/^[a-zA-Z0-9_\.\-]+@(([a-zA-Z0-9_\.\-]+\.)+[a-zA-Z0-9]+$)/

URL
/^http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w-.\/?%&=]*)?/

電話番号(ハイフンなし10桁)
/^\d{10}$/

携帯番号(ハイフンなし11桁)
/^\d{11}$/

携帯番号(ハイフンなし10桁or11桁)
/^\d{10}$|^\d{11}$/

郵便番号(ハイフンあり7桁)
/^\d{3}[-]\d{4}$/

郵便番号(ハイフンなし7桁)
/^\d{7}$/

郵便番号(ハイフンあり・なし両方)
/^\d{3}[-]\d{4}$|^\d{7}$/
if($var)issetemptyis_null
$val=””;falsetruetruefalse
$val=”0″;falsetruetruefalse
$val=0;falsetruetruefalse
$val=NULL;falsefalsetruetrue
$valfalsefalsetruetrue
$val=array()falsetruetruefalse
$val=array(1)truetruefalsefalse