我的代码出了什么问题?我找不到解决方案。
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,}))$/";
var email= document.getElementById("email").value;
if (re.test(email) == false) {
document.getElementById("email").focus();
return false;
}
双引号引起了问题,谢谢! 由于我的声誉,我不能投票: - (
答案 0 :(得分:0)
像suresh建议的那样,你应该删除你的正则表达式字符串周围的引号(“)。 所以你的第一行应该是:
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,}))$/;
我在下面制作了一个工作示例:
<script>
function test()
{
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,}))$/;
var email= "test@somedomain.com";
if (re.test(email) == false) {
alert("invalid email address");
return;
}
alert("valid address");
}
</script>
<button onclick="test()">TEST</button>
答案 1 :(得分:-1)
让我们尝试一下这对我来说很聪明
function IsEmail(email) {
var regex = /^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
return regex.test(email);
}
if(!IsEmail(mailString)){
$("#somediv").text(" Email should be valid ");
return false;
}