如何使用jquery.validate.min.js验证电话号码和电子邮件?
问题描述:
我已经设法修改了一个jQuery表单验证示例来处理我的网站,但我不知道如何确保它只是在电话号码字段中输入的数字,并且只是在电子邮件字段中输入的电子邮件地址。如何使用jquery.validate.min.js验证电话号码和电子邮件?
请任何人都可以帮忙吗?
也想知道是否有什么可以改善?
<script language="javascript" type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.10.0/jquery.validate.min.js"></script>
<script>
$(function() {
$("#quickform").validate({
rules: {
name: {
required: true
},
phone: {
required: true,
phonevalidation: true
},
email: {
required: true,
emailvalidation: true
},
enquiry: {
required: true
}
},
messages: {
name: {
required: "Please enter your name."
},
phone: {
required: "Please enter your phone number."
},
email: {
required: "Please enter your email address."
},
enquiry: {
required: "Please enter your enquiry."
}
},
});
$.validator.addMethod("phonevalidation",
function(value, element) {
return /^[A-Za-z\d=#$%@_ -]+$/.test(value);
},
"Please enter a valid phone number."
);
$.validator.addMethod("emailvalidation",
function(value, element) {
return /^[A-Za-z\d=#$%@_ -]+$/.test(value);
},
"Please enter a valid email address."
);
});
</script>
编辑:
已经有很多的例子验证方法,但它是不接受特殊字符。我只需要了解如何将/^[A-Za-z \ d =#$%@ _ - ] + $ /更改为电子邮件和数字验证。
答
有已经存在于验证框架email
和phone
规则
<script language="javascript" type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.10.0/jquery.validate.min.js"></script>
<script language="javascript" type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.11.1/additional-methods.js"></script>
<script>
$(function() {
$("#quickform").validate({
rules: {
name: {
required: true
},
phone: {
required: true,
phoneUK: true //or look at the additional-methods.js to see available phone validations
},
email: {
required: true,
email: true
},
enquiry: {
required: true
}
},
messages: {
name: {
required: "Please enter your name."
},
phone: {
required: "Please enter your phone number."
},
email: {
required: "Please enter your email address."
},
enquiry: {
required: "Please enter your enquiry."
}
},
});
});
</script>
答
我建议建立一个正则表达式和匹配到了用户输入,并使用匹配()函数。
有关如何构建正确的正则表达式的详细信息(根据您所在地区)去RegExp tutorial。
+0
感谢您的回复。对不起,我应该更清楚。该示例中已经有验证方法,但不接受特殊字符。我只需要了解如何将/^[A-Za-z \ d =#$%@ _ - ] + $ /更改为电子邮件和数字验证。 – Chris 2013-04-30 11:49:59
答
我有英国的电话号码验证
jQuery.validator.addMethod('phoneUK', function(phone_number, element) {
phone_number = phone_number.replace(/\s+/g, '');
return this.optional(element) || phone_number.match(/^(\+44\s?7\d{3}|\(?07\d{3}\)?)\s?\d{3}\s?\d{3}$/);
}, 'Please specify a valid phone number');
$('#inputTelephone').rules('add', {
required: true,
phoneUK: true
});
“我不知道如何确保它在进入只是数字电话号码字段“ - 不要。相反,让人们格式化他们的电话号码。您可以在服务器上删除格式化字符。 – Quentin 2013-04-30 11:38:15
感谢您的回复。对不起,我应该更清楚。该示例中已经有验证方法,但不接受特殊字符。我只需要了解如何将/^[A-Za-z \ d =#$%@ _ - ] + $ /更改为电子邮件和数字验证。 – Chris 2013-04-30 11:49:17