我正在寻找一个jquery电子邮件验证器 - >简单而完整,不使用正则表达式!
我找到了一个像下面这样强大的图书馆:
bassistance jquery-plugin-validatio
但是这个库对我来说有很多不必要的功能!
除了我只需要一个函数给它我的txtemail并检查它是真还是假
我怎么能用这个插件做到这一点?
我的aspx代码如下:
<head runat="server">
<title></title>
<script src="Scripts/jquery-1.6.1.min.js" type="text/javascript"></script>
<script src="Scripts/jquery.validate.min.js" type="text/javascript"></script>
<script type="text/javascript">
$().ready(function () {
$("#commentForm").validate();
});
</script>
<style type="text/css">
#commentForm
{
width: 500px;
}
</style>
</head>
<body>
<form runat="server" id="commentForm">
<fieldset>
<legend>Please provide your email address</legend>
<p>
<label for="cemail">
E-Mail (required)</label>
<asp:TextBox ID="TextBox1" runat="server" CssClass="required email"></asp:TextBox>
</p>
</fieldset>
</form>
</body>
</html>
或
我很感激在jquery中向我介绍一个接受电子邮件字符串并返回true或false的函数!
我知道stackoverflow中有一些关于此问题的重复线程,但其中一个是关于此插件的,另一个是关于使用RegEx(RegEx Trustable和跨浏览器兼容性吗?)
提前致谢
答案 0 :(得分:1)
您可以使用已建立的正则表达式来验证电子邮件地址。如果想在没有jQuery validate插件的情况下进行简单验证,那么您可以将验证放在submit
事件处理程序
$(function () {
// regex from http://fightingforalostcause.net/misc/2006/compare-email-regex.php
var emailRegex = /^[-a-z0-9~!$%^&*_=+}{\'?]+(\.[-a-z0-9~!$%^&*_=+}{\'?]+)*@([a-z0-9_][-a-z0-9_]*(\.[-a-z0-9_]+)*\.(aero|arpa|biz|com|coop|edu|gov|info|int|mil|museum|name|net|org|pro|travel|mobi|[a-z][a-z])|([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}))(:[0-9]{1,5})?$/i;
// capture the field to test
var textBoxToTest = $('input.required.email');
// set up a submit event handler
$('#commentForm').submit(function () {
return emailRegex.test(textBoxToTest.val());
});
});
如果输入字段值与电子邮件正则表达式模式不匹配,则.test()
调用将返回false,这将取消<form>
的默认操作(即阻止其提交)以及防止事件在DOM树中向上冒泡。
现在,您还可以通过使用正则表达式创建验证器并将其设置为字段然后让验证插件负责阻止表单在字段无效时提交来验证插件。但是,我发现您使用的是ASP.NET网页,因此我建议使用RegularExpressionValidator
控件。像
<head runat="server">
<title></title>
<style type="text/css">
#commentForm
{
width: 500px;
}
</style>
</head>
<body>
<form runat="server" id="commentForm">
<fieldset>
<legend>Please provide your email address</legend>
<p>
<label for="cemail">
E-Mail (required)</label>
<asp:TextBox ID="TextBox1" runat="server" CssClass="required email"></asp:TextBox>
<asp:RegularExpressionValidator
ID="regexpName" runat="server"
ErrorMessage="Please enter a valid email address"
ControlToValidate="TextBox1"
ValidationExpression="/^[-a-z0-9~!$%^&*_=+}{\'?]+(\.[-a-z0-9~!$%^&*_=+}{\'?]+)*@([a-z0-9_][-a-z0-9_]*(\.[-a-z0-9_]+)*\.(aero|arpa|biz|com|coop|edu|gov|info|int|mil|museum|name|net|org|pro|travel|mobi|[a-z][a-z])|([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}))(:[0-9]{1,5})?$/i"
EnableClientScript="true" />
</p>
</fieldset>
</form>
</body>
</html>
控件将负责客户端和服务器端验证(您总是也希望验证服务器端),因此它可能是您最简单的选择,或者您可以使用客户端的validate插件与CustomValidator
控件一起实现服务器端验证。