読者です 読者をやめる 読者になる 読者になる

nazolabo

なぞさんのブログ

PHPで正しいメールアドレスを調べる方法

PHP rhaco

いくつか実装での「正しいメールアドレス」を調べてみました。

http://catbot.net/blog/2007/06/re_php.html

rhacoも入れてあげて!多分そんなに変わらないけど!
というわけでrhacoは以下のようになっています。(lang/Validate.phpより)

	/**
	 * Emailアドレスとして妥当か
	 *
	 * @param unknown_type $email
	 * @return boolean
	 */
	function isEmail($email){
		/***
		 * assert(Validate::isEmail("aaaaaaa.aaaaaaaaa.a@s.sss.cd"));
		 * assert(Validate::isEmail("aaaaaaa.aaaaaaaaa.a@sss.cd"));
		 * assert(!Validate::isEmail("aaaaaaa.aaaaaaaaa.a@ss.cd"));
		 * assert(Validate::isEmail("aaaaaaa.aaaaaaaaa.a@s.sss.sss.cd"));
		 * assert(Validate::isEmail("aaaaaaa.aaaaaaaaa.@s.sss.sss.cd"));
		 */
		if(preg_match("/^[\x01-\x7F]+@(?:[A-Z0-9-]+\.)*(?:[A-Z0-9-][A-Z0-9-][A-Z0-9-]+\.)+[A-Z]{2,6}$/i",$email) && strlen($email) <= 255){
			return true;
		 }
		 return false;
	}

携帯のメールアドレスって変なの多いから適度にゆるく判定したほうがいいと思うなー。symfonyの判定ロジックはそのへん大丈夫なのかな。
ところでlang.Variableとlang.Validateって似てるよね!