1

JavaScript で次の電子メール検証正規表現を使用しています。実際には何も返されませんが、そうすべきだと思います (true または false)。

このコードの何が問題になっていますか?

function isEmail(aa){
    var testx=/^([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x22([^\x0d\x22\x5c\x80-\xff]|\x5c[\x00-\x7f])*\x22)(\x2e([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x22([^\x0d\x22\x5c\x80-\xff]|\x5c[\x00-\x7f])*\x22))*\x40([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x5b([^\x0d\x5b-\x5d\x80-\xff]|\x5c[\x00-\x7f])*\x5d)(\x2e([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x5b([^\x0d\x5b-\x5d\x80-\xff]|\x5c[\x00-\x7f])*\x5d))*$/
    return testx.test(aa);
}

<input type="text" name="email" id="email" onChange="isEmail(this.value)">
4

2 に答える 2

1

string をテストしている場合'aa'、変更します

return testx.test('aa');

return testx.test(aa);

参照: jsFiddle デモ

于 2013-05-07T10:36:17.883 に答える
0

正規表現による電子メールの検証は非常に複雑なようです。

可能であれば、HTML5 フォーム検証を使用する必要があります

<input type="email">

フォームの検証について詳しく知るには、divintohtml5.infoが最適です。

私が知る限り、検証はブラウザ側のものであり、送信ボタンと一緒にのみ機能します。特定の文字列が有効かどうかを確認するための JavaScript API はありません。

于 2013-05-07T11:06:16.443 に答える