我试图验证我的表单, 但由于某种原因, SSN 字段不起作用:(
我有: validate: function () {
contact.message = '';
if (!$('#contact-container #contact-name').val()) {
contact.message += 'Name is required. ';
}
var ssn = $('#contact-container #contact-ssn').val();
if (!ssn) {
contact.message += 'SSN is required. ';
}
else {
if (!contact.validateSSN(ssn)) {
contact.message += 'SSN is invalid. ';
}
}
var email = $('#contact-container #contact-email').val();
if (!email) {
contact.message += 'Email is required. ';
}
else {
if (!contact.validateEmail(email)) {
contact.message += 'Email is invalid. ';
}
}
if (!$('#contact-container #contact-message').val()) {
contact.message += 'Message is required.';
}
if (contact.message.length > 0) {
return false;
}
else {
return true;
}
},
和
validateSSN: function (ssn) {
//
if (!/^[0-9]{9}$/)
return false;
else
{
return true;
}
},
我的电子邮件部分工作正常,但SSN部分只接受任何内容,因为它不是空的。我错过了什么? 谢谢
答案 0 :(得分:0)
我认为你需要 -
if (!/^[0-9]{9}$/.test(ssn))
而不是 -
if (!/^[0-9]{9}$/)
这应该告诉您ssn
值是否与您的RegEx相匹配。我认为!/^[0-9]{9}$/
总是会返回false。
答案 1 :(得分:0)
!/ ^ [0-9] {9} $ /将始终返回false,因为/.../部分计算为正则表达式对象,并且对象始终计算为true。
您可能想要if (!/^[0-9]{9}$/.test(ssn))
编辑:更简单:
validateSSN: function (ssn) {
return /^[0-9]{9}$/.test(ssn);
}