如何在JavaScript中使用正则表达式验证电子邮件地址?

时间:2013-05-07 10:33:56

标签: javascript regex validation

我在JavaScript中有以下电子邮件验证正则表达式。它实际上并没有返回任何东西,但我认为它应该(真或假)。

这段代码出了什么问题?

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)">

2 个答案:

答案 0 :(得分:1)

您正在测试字符串'aa',更改

return testx.test('aa');

return testx.test(aa);

请参阅:jsFiddle Demo

答案 1 :(得分:0)

通过正则表达式进行电子邮件验证似乎非常复杂。

如果可能,您应该使用HTML5表单验证

<input type="email">

diveintohtml5.info是了解form validation的更多信息的好地方。

据我所知,验证是浏览器方面的事情,只能与sumbit按钮一起使用。没有javascript api来检查特定字符串是否有效。