【发布时间】:2020-01-16 12:03:12
【问题描述】:
<form action="#" method="post" id="book-list">
<div class="form-group">
<label for="email">Email</label>
<input type="text" id="email" class="form-control">
</div>
<input type="submit" value="Add" class="btn btn-primary btn-block">
</form>
<script type="text/javascript">
function isEmail(email){
return /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z](2,4))$/.test(email);
}
const form = document.querySelector('#book-list').addEventListener('submit',(e) =>{
e.preventDefault();
const inputEmail = document.querySelector('#email').value;
if(isEmail(inputEmail) === false ){
console.log('you lost');
document.querySelector('#email').focus();
return false;
}else{
console.log('you win');
return true
}
});
</script>
玩弄这个电子邮件验证,有什么问题吗 与代码?即使我用正确的电子邮件地址填写了该字段,例如 myname@gmail.com 它保留 打印you lost结果而不是打印you win,是不是因为表单提交?
【问题讨论】:
-
使用正则表达式的量词应该在
[A-Za-z]{2,4}。而不是[A-Za-z](2,4)。试试这个修改过的正则表达式:^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$ -
我修好了,支架没注意,谢谢大家!
-
@DaviddeLavign - 您用于验证电子邮件的正则表达式模式在这部分是错误的 -
[A-Za-z](2,4)
标签: javascript client-side email-validation