我正在创建一个接收电子邮件地址的表单,并决定是使用input type='email'
还是input type='text'
并使用JavaScript进行验证。我知道确定电子邮件地址是否是有效格式是一项艰巨的任务,所以有人知道HTML 5的电子邮件属性有多好吗?
使用电子邮件属性的原因
不使用电子邮件属性的原因
编辑:任何人都知道e-mail
属性在它使用的正则表达式中是如何工作的?
答案 0 :(得分:4)
关于HTML5的事实<input type="email">
:
*@*
作为有效的电子邮件地址。在Safari,Chrome和Firefox中,您至少需要输入*@*.*
我的建议是你应该开始使用这个新的HTML5属性以及你自己的验证来实现上面的第(3)点。
欲了解更多信息:
答案 1 :(得分:2)
我用过它并喜欢它。但是,我必须覆盖验证错误消息。我就是这样做的。
//Listen for the 'input' event on the email field. If HTML5 validation throws a typeMismatch, then
// override the default message with something more useful and/or sarcastic.
$('#email').bind('input', function () {
//We need to reset it to blank or it will throw an invalid message.
this.setCustomValidity('');
if (!this.validity.valid) {
this.setCustomValidity("Dude '" + this.value + "' is not a valid email. Try something like "+
"jim@email.org. And no we are not checking if it actually works, we are just looking "+
"for the @ sign. ");
}
});
您可以在github的工作示例中找到此信息。