提交时的正则表达式电子邮件验证

时间:2016-12-19 21:07:04

标签: javascript jquery html

我想通过提交的正则表达式对电子邮件进行非常基本的jQuery验证。我的HTML:

<form action="POST" id="form">
<input type="email" id="customer_email" placeholder="email here" />
<input type="submit" />
</form>

JS:

$('#form').submit(function() {
var email_reg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;

var emailinput = $('#customer_email').value();

if (email_reg.test(emailinput) == false) {
    window.alert('no good');
}
});

据我所知,为了实现这个目的,我需要通过电子邮件输入获取输入的值(我在第4行上做)并在其上运行正则表达式。

单击提交时,表单上会显示标准输入错误,而不是窗口警报。请在此处查看Codepen概述: http://codepen.io/anon/pen/oYmJLW?editors=1010

1 个答案:

答案 0 :(得分:2)

您需要添加event.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"