Почему бы не проверить? - PullRequest
0 голосов
/ 24 ноября 2011

я пытаюсь проверить мою форму, но по какой-то причине поле 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 просто принимает что-либо вместе с тем, что она не пустая. Что мне не хватает? Спасибо

Ответы [ 2 ]

0 голосов
/ 24 ноября 2011

! / ^ [0-9] {9} $ / всегда будет возвращать false, поскольку часть /.../ оценивается как объект регулярного выражения, а объект всегда оценивается как true.

Вы, вероятно, хотите if (!/^[0-9]{9}$/.test(ssn))

РЕДАКТИРОВАТЬ: еще проще:

validateSSN: function (ssn) {
  return /^[0-9]{9}$/.test(ssn);
}
0 голосов
/ 24 ноября 2011

Я думаю, вам нужно -

 if (!/^[0-9]{9}$/.test(ssn))

вместо -

 if (!/^[0-9]{9}$/)

Это должно сказать вам, если значение ssn соответствует вашему RegEx или нет.Я думаю !/^[0-9]{9}$/ всегда будет возвращать false.

...