Masato Kobayashi
ksoun****@rd*****
2007年 10月 26日 (金) 14:47:53 JST
こんにちは、小林@Ksoundです。 >> $user_pat = "^$word(\.$word)*$"; >> >>を >> >> >>でどうでしょう? >そん時はかなりダイナミックな方法で解決されてましたが と言うご指摘を頂きましたので書き直しておきます(-o-;) どちらも変わりはないと思いますが・・・ $mail_pat = '^(.+)@(.+)$'; $valid_chars = "[^] \(\)<>@,;:\.\\\"\[]"; $atom = "$valid_chars+"; $quoted_user='(\"[^\"]*\")'; $word = "($atom|$quoted_user)"; $user_pat = "^$word(\.$word)*$"; を $mail_pat = '^(.+)@(.+)$'; $valid_chars = "[^] \()<>@,;:\.\\\"\[]"; $valid_user = "[^] \(\)<>@,;:\\\"\[]"; $atom = "$valid_chars+"; $atom_user = "$valid_user+"; $quoted_user='(\"[^\"]*\")'; $word = "($atom_user|$quoted_user)"; $user_pat = "^$word(\.$word)*$"; とした方が良いのかも。 >> function isValidInetAddress($data, $strict = false) >> { >> $regex = $strict ? >>'/^([.0-9a-z_+-]+)@(([0-9a-z-]+\.)+[0-9a-z]{2,})$/i' : >>'/^([*+!.&#$|\'\\%\/0-9a-z^_`{}=?~:-]+)@(([0-9a-z-]+\.)+[0-9a-z]{2,})$/i'; >> if (preg_match($regex, trim($data), $matches)) { >> return array($matches[1], $matches[2]); >> } else { >> return false; >> } >> } こちらだと今度は AAA..****@ezweb***** のようなアドレスがはじかれそうな気がしますが >「正規表現でメールアドレスの正当性を調べることは難易度が高い」 そうですね。 難しいですし勿論限界がありますので、結局は正当なアドレスをはじくぐらいなら 多少ゆるめに考えた方がリスクは少ないかと思います。 Masato Kobayashi