我想在电子邮件中允许_
。
但正则表达式我只是过滤了这个。
HTML,
<input id="external_email_input" maxlength="85" type="text">
<button id='email'>Send</button>
JS,
$("#email").click(function(){
var email = $("#external_email_input").val();
if(!validateEmail(email)){
alert("wrong format!!");
}else{
alert("correct!!");
}
});
function validateEmail(email) {
var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
return re.test(email);
}
的jsfiddle,
如果我把test@test_test.com
返回false
我如何在这里允许_
作为条件?
答案 0 :(得分:3)
使用<input type="email" />
。删除所有JavaScript。问题解决了。
答案 1 :(得分:0)
根据Jerry在评论中的建议修改验证以包括下划线(_)可以解决问题。
验证功能:
function validateEmail(email) {
var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"_]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9_]+\.)+[a-zA-Z]{2,}))$/;
return re.test(email);
}
更新了小提琴:http://jsfiddle.net/rRnwb/2/
答案 2 :(得分:0)
您的代码是:
在_
符号后,没有@
来满足您的输入邮件ID。
所以,你可以使用:
(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|((\w+\.)+[a-zA-Z]{2,}))
<强> FIDDLE DEMO 强>
说明: