Javascript 提交时的Regex电子邮件验证
我想在提交时通过正则表达式对电子邮件进行非常基本的jQuery验证。我的HTML:Javascript 提交时的Regex电子邮件验证,javascript,jquery,html,Javascript,Jquery,Html,我想在提交时通过正则表达式对电子邮件进行非常基本的jQuery验证。我的HTML: <form action="POST" id="form"> <input type="email" id="customer_email" placeholder="email here" /> <input type="submit" /> </form> 据我所知,为了使其工作,我需要通过电子邮件输入获取输入值(我在第4行这样做),并在其上运行正则表达式 单
<form action="POST" id="form">
<input type="email" id="customer_email" placeholder="email here" />
<input type="submit" />
</form>
据我所知,为了使其工作,我需要通过电子邮件输入获取输入值(我在第4行这样做),并在其上运行正则表达式
单击“提交”时,表单上会出现标准输入错误,而不是窗口警报。请在此处随意查看概述此内容的代码笔:
您需要添加
事件.preventDefault()
以防止实际表单提交,并在输入上使用.val()
而不是.value()
$('#form').submit(function(event) {
event.preventDefault();
var email_reg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
var emailinput = $('#customer_email').val();
if (email_reg.test(emailinput) == false) {
window.alert('no good');
}
});
通过将您的输入声明为
type=“email”
您的浏览器将执行有效性检查(您不需要自己进行检查),如果您想避免这种情况,请使用type=“text”
您需要添加事件.preventDefault()
以防止实际的表单提交,并使用.val()
而不是.value>()
输入
$('#form').submit(function(event) {
event.preventDefault();
var email_reg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
var emailinput = $('#customer_email').val();
if (email_reg.test(emailinput) == false) {
window.alert('no good');
}
});
通过将您的输入声明为
type=“email”
您的浏览器将进行有效性检查(您不需要自己进行检查),如果您想避免使用type=“text”
的话,我使用这封电子邮件测试了您的正则表达式:“2039i#@gmail.com”,它工作得很好。它提醒了您的警告消息(“不好”)。您尝试了什么电子邮件?可能需要为您的情况更改正则表达式。我在我的个人网站上使用正则表达式,效果很好。问题是我使用了type=“email”
,我猜它会覆盖JS验证。我使用以下电子邮件测试了您的正则表达式:“2039i#@gmail.com”,它工作正常。它提醒了您的警告消息(“不好”)。你尝试了什么电子邮件?也许你的案例需要更改正则表达式。我在我的个人网站上使用正则表达式,效果很好。问题是我使用的是type=“email”
,我想它会覆盖JS验证。哦,我明白了。所以如果你使用type=“email”“
浏览器进行有效性检查并覆盖JS?我不知道。不会e.preventDefault();
不允许这种情况发生吗?@kawnahe.preventDefault()
只是阻止提交。老实说,我不知道为什么Javascript会被完全跳过,为什么会这样交互,我想我明白了。所以如果使用type=“email”
浏览器会进行有效性检查并覆盖JS?我不知道。不会e.preventDefault()
不允许这种情况发生?@kawnahe.preventDefault()
只是阻止提交。老实说,我不知道为什么Javascript会被完全跳过,为什么它会这样交互,我猜是奇怪的浏览器怪癖