php:phpで正規表現を使った英数字チェック

phpでフォームを作成する場合、バリデーションの処理は必要だと思います。
数字チェック、英字チェック、英数字チェックなど色々なパターンのチェックがあります。
いつも忘れてしまうので、php正規表現で「preg_match()」を使用した英数字チェックをする方法をメモします。


※変数内の全ての文字を判定しています。
※半角英数字の場合です。

数値チェック

	// 数字チェック
	if (preg_match('/^[0-9]+$/', $data)) {
		// 数字の場合
	}
	else {
		// 数字ではない場合
	}

英字チェック

	// 英字チェック
	if (preg_match('/^[a-zA-Z]+$/', $data)) {
		// 英字の場合
	}
	else {
		// 英字ではない場合
	}

英数字チェック

	// 英数字チェック
	if (preg_match('/^[a-zA-Z0-9]+$/', $data)) {
		// 英数字の場合
	}
	else {
		// 英数字ではない場合
	}

また、関数にしておくと値を渡すだけなので簡単に使えると思います。

上記のチェックを関数にした場合

	// 数字チェック
	function is_num($data) {
		if (preg_match('/^[0-9]+$/', $data)) {
			// 数字の場合
			return true;
		}
		else {
			// 数字ではない場合
			return false;
		}
	}

	// 英字チェック
	function is_alpha($data) {
		if (preg_match('/^[a-zA-Z]+$/', $data)) {
			// 英字の場合
			return true;
		}
		else {
			// 英字ではない場合
			return false;
		}
	}

	// 英数字チェック
	function is_alphanum($data) {
		if (preg_match('/^[a-zA-Z0-9]+$/', $data)) {
			// 英数字の場合
			return true;
		}
		else {
			// 英数字ではない場合
			return false;
		}
	}

他にも色々なパターンを組み合わせることができるので、自由にチェック内容を作成できると思います。