我的电子邮件验证码遇到了麻烦。我继续得到我的函数没有定义的错误。我已经为java代码创建了一个javascript文件,然后我在我的html中使用了onchange来触发该函数。
<input type="text" id="email" name="email" onchange="check();" />
function check() {
email = document.getElementById("email").value;
filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
if (filter.test(email.value))
{
document.getElementById("email").style.border = "3px solid green";
return true;
}
else
{
document.getElementById("email").style.border = "3px solid red";
return false;
}
}
答案 0 :(得分:3)
将您的javascript放入<script>
标记。
同时重命名变量名称email
,因为您的文本框已经使用它。
<input type="text" id="email" name="email" onchange="check();" />
<script type="text/javascript">
function check() {
var email_x = document.getElementById("email").value;
filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
if (filter.test(email.value)) {
document.getElementById("email").style.border = "3px solid green";
return true;
} else {
document.getElementById("email").style.border = "3px solid red";
return false;
}
}
</script>
答案 1 :(得分:1)
电子邮件验证并不总是像正则表达式那样简单。你看过了吗:
Validate email address in JavaScript?
更好的选择是使用Verimail.js。这是一个简单的脚本,可以为您处理。使用Verimail.js,您可以这样做:
var email = "cool@fabeook.cmo";
var verimail = new Comfirm.AlphaMail.Verimail();
verimail.verify(email, function(status, message, suggestion){
if(status < 0){
// Incorrect syntax!
}else{
// Syntax looks great!
}
});
上面的示例将出现“语法错误!”一行因为TLD'cmo'无效。除此之外,它还会提示您可以返回给您的用户,在这种情况下,建议变量将包含'cool@facebook.com',因为'fabeook.cmo'看起来很像'facebook.com'。< / p>
希望这有帮助!
答案 2 :(得分:1)
以下是html输入字段和按钮字段
的代码 <input input type="text" name="txtEmailId" id="txtEmailId" />
<input type="submit" class="button" value="Suscribe" name="Suscribe"
onclick="javascript:ShowAlert()" />
现在将以下功能添加到页面标题
<script type="text/javascript">
function ShowAlert() {
var email = document.getElementById('txtEmailId');
var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
if (!filter.test(email.value)) {
alert('Please provide a valid email address');
email.focus;
return false;
}
else {
alert("Thanks for your intrest in us, Now you
will be able to receive monthly updates from us.");
document.getElementById('txtEmailId').value = "";
}
}
</script>
您可以在此处找到有关此Email Validation in JavaScript
的文章答案 3 :(得分:0)
如果您对域名有所了解,可以使用此代码进行电子邮件验证,以防止匿名电子邮件域。
(^([a-zA-Z]{1,20}[-_.]{0,1}[a-zA-Z0-9]{1,20})(\@gmail\.com|\@yahoo\.com|\@hotmail\.com)$)
您也可以添加其他域名。