一个简单的jquery片段来验证用户'的电子邮件地址
a simple jquery snippet to validate a user's email address
我使用以下javascript代码来验证用户的输入电子邮件地址。我的问题是,我使用html5作为"电子邮件"类型的文本框,目前在最新的IE版本上无法正常工作。我发现自己更喜欢html5,因为它提供了更好的外观和感觉效果。因此,我想使用它,因此同时需要添加一个小片段来检查IE浏览器,如以下代码中所示,
function IsValidEmail(email)
{
var em= new RegExp(/^[+a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+'.[a-zA-Z]{2,4}$/i);
return em.test(email);
}
$("#aspformblahblah").submit(function()
{
var em=$('#email').val();
if(!IsValidEmail(em))
{
if($.browser.msie)
{
$("#e-valid").css({'color':'red','padding-left':'5px', 'font-style':'italic'});
$("#e-valid").html("Please enter a valid email address");
return false;
}
}
return true;
});
它在所有其他浏览器上都能很好地工作,但我似乎满脑子都在想我在某个地方犯的一个逻辑错误,即当提交表单时,上面的代码在IE上不起作用。不过,它可以很好地验证输入的电子邮件地址。有什么启发我的想法吗。。。。非常感谢,
包装文档.ready
<!DOCTYPE HTML>
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script>
function IsValidEmail(email) {
// the regex works in IE but should be a string (see nnnnn's answer)
// var em= new RegExp(/^[+a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+'.[a-zA-Z]{2,4}$/i);
var em=/^[+a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+'.[a-zA-Z]{2,4}$/i; // simpler
return em.test(email);
}
$(document).ready(function() {
$("#form1").submit(function() {
var em=$('#email').val();
if(!IsValidEmail(em))
{
if($.browser.msie)
{
alert("Wrong email");
$("#e-valid").css({'color':'red','padding-left':'5px', 'font-style':'italic'});
$("#e-valid").html("Please enter a valid email address");
return false;
}
}
return true;
});
});
</script>
</head>
<body>
<form id="form1">
<input id="email" type="email" value="" /><span id="e-valid"></span><br/>
<input type="submit" />
</form>
</body>
</html>
您将regex文本传递给RegExp()构造函数,但它需要一个字符串。试试这个:
function IsValidEmail(email)
{
var em= /^[+a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+'.[a-zA-Z]{2,4}$/i;
return em.test(email);
}
请注意,您不需要变量em,如果您使用不区分大小写的regex的"i"标志,则可以简化您的模式:
return /^[+a-z0-9._-]+@[a-z0-9.-]+'.[a-z]{2,4}$/i.test(email);
相关文章:
- 同步调用,直到用户通过angular验证为访问者
- 实施Facebook's无用户身份验证的Graph API
- 如何创建只允许用户在选中前一个复选框的情况下选择复选框的复选框验证
- 从后端检查Open Social小工具中的用户身份验证
- 使用JavaScript验证用户交互/输入-这是一种很好的方法
- 如何设置30天的电子邮件验证以由用户重新发送
- 如何使用CORS向多个域验证同一用户
- 根据某些条件验证用户输入,而不是将输入输入到数组中,需要最基本的解决方案
- 如何检查当前用户电子邮件是否已在客户端js文件中验证
- 用户可以无需身份验证即可将文件直接上传到 Google Cloud Storage
- 全身份验证 - 抓住用户被重定向到谷歌的时刻
- 如何针对 AWS Cognito 用户池进行身份验证
- 角度:处理重新加载页面和用户身份验证
- 使用java脚本或j查询检测选项卡关闭事件,并进行用户验证的googleapi调用
- PHP,类似Facebook的按钮用户验证
- 如何在用户验证后打开新窗口并提取参数
- 从另一个域获取用户验证cookie
- 分析云代码用户验证
- 跨域javascript用户验证
- 如果用户验证失败,如何避免JavaScript清除表单数据