1

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

diveintohtml5.info是了解有关表单验证的更多信息的好地方。

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

于 2013-05-07T11:06:16.443 回答