[英]Jquery Custom Validation not working properly
我处于无法使用Jquery的validate插件的情况。 所以我写了一个自定义验证器。 但是由于某些原因,测试功能无法正常工作。
代码运行良好,直到if (format.test(email)) {
为止。 请分享您的知识。 提前致谢
$(document).ready(function () {
$("#MainContent_btnSubmit").click(function () {
validateEmail();
});
});
function validateEmail() {
var format = "[a-zA-Z._0-9]@[a-zA-Z.0-9].[a-zA-Z]";
var email = $("#MainContent_txtEmail").val();
if (format.test(email)) {
alert("Correct Email");
}
else {
alert("Wrong Email");
}
首先,正则表达式不以字符串形式编写。 它们具有自己的文字类型:
var format = /[a-zA-Z._0-9]@[a-zA-Z.0-9].[a-zA-Z]/;
其次,每个字符类仅匹配一个字符。 还有一个.
如果不转义,则为通配符。 此外,如果email
任何子字符串满足该模式,则test
将报告为true。 因此,您需要锚定模式。 您可能意思是这样的:
var format = /^[a-zA-Z._0-9]+@[a-zA-Z.0-9]+\.[a-zA-Z]+$/;
format
必须是RegExp
对象:
var format = new RegExp("[a-zA-Z._0-9]@[a-zA-Z.0-9].[a-zA-Z]");
此外,我怀疑您希望该值仅包含电子邮件,因此请使用锚点:
var format = new RegExp("^[a-zA-Z._0-9]+@[a-zA-Z0-9]+\\.[a-zA-Z]+$");
您可以使用正则表达式"^[a-zA-Z._0-9]+@[a-zA-Z0-9]+\\\\.[a-zA-Z]+$"
并使用它创建一个RegExp对象
我不确定这是否是复制粘贴错误,但是看着您的函数代码,您可以看到您尚未关闭函数validateEmail()
我认为您或者像这样缺少顶部的jquery插件:
<script src='path-to-your-jQuery-plugin' type='text/javascript'></script>
要么
function validateEmail() {
var format = /^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$/;
var email = $("#MainContent_txtEmail").val();
if (format.test(email)) {
alert("Correct Email");
}
else {
alert("Wrong Email");
}
} // in your code here you missed the closing tag of the function
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.