に私はJavaScriptで動作する電子メールアドレスをチェックする正規表現がない:正規表現は、JavaScriptで動作しますが、PHP
var re = /^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$/;
"[email protected]".search(re); // returns 0
をしかし、私は同じ正規表現を使用して、PHPにするpreg_match()を使用して電子メールで送信する場合それはdoesnの仕事!
$re = "/^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$/";
echo preg_match($re,"[email protected]");
// echoes 0 - not 1!!
EDIT
わかりましたので、私はより詳細な情報を追加する必要があります。
完全なコードはここにある:私はちょうどするpreg_match()(forループの外)を行うと
$re = '/^([0-9a-zA-Z]([-.\w\+\%\#\!\$\'\*\/\=\?\^\`\{\|\}\~]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$/';
if(is_array($recipients)){
for($i=0;$i<count($recipients);$i++){
echo preg_match($re,$recipients[$i]) . " - " . $recipients[$i] . "<br />";
}
}
、それが適切にパターンに一致します。しかし、このループに入っていれば、それは検証されません!
「foo + bar @ example.com」はありませんか? ( '%'、 '_' * et al。*はもちろん)私は中程度の悲しいパンダです。 – Piskvor
これは奇妙です。 [IDEOne](http://ideone.com/JHuqs)は同意しないようだ。 –
私のためにうまく働いています... – prodigitalson