2013-07-30 3 views
2

У меня есть HTML-форма, которую я хочу проверить с помощью регулярного выражения. У меня есть регулярное выражение, содержащееся в методе emailRegex, который затем вызывается в методе validateEmail. Я "получаю сообщение об ошибке при попытке вызвать мой метод emailRegex в validateEmail Может кто-нибудь сказать мне, что я делаю неправильно здесьJavascript regex form validation

var validation={ 

emailRegex: function() {//new email Regular Expression for validateEmail method 
    return /^(([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5}){1,25})+ ([;.](([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5}){1,25})+)*$/; 
}, 

validateEmail: function(value) { 

    var regex = this.emailRegex;//takes value found in emailRegex 

    var offensiveWords = new RegExp(/\b(hate|notCool)b/); //offensive words regular expression 

    var email = document.getElementById("email"); 

    var compactEmail = function(){//takes the value of the email form element and takes out any white spaces 
     var emailValue = email.value; 
     var compacted = emailValue.replace(" ",""); 
     return compacted; 
    } 

    if(!regex.test(compactEmail())){//checks for a valid email address against regex from emailRegex method 

     alert("Please enter a valid email address"); 
     email.focus(); 

     return false; 
    } 

    if(!offensiveWords.test(compactEmail())){//checks for the offensive words found in offensiveWords regular expression. 

     alert("Your email address contains an offensive word"); 
     email.focus(); 

     return false; 
    } 

    return true; 

} 
} 
+1

Какая ошибка вы получаете? –

+0

Сравните ваше регулярное выражение с этим: http://www.ex-parrot.com/pdw/Mail-RFC822-Address.html –

ответ

3

Я предполагаю, что вы видите на ReferenceError:.?

ReferenceError: emailRegex is not defined

Ваша переменная emailRegex является функцией, а не свойство

Это, как вы должны назвать его вместо:.

var regex = this.emailRegex(); 
+0

У меня есть еще один быстрый вопрос. на моем втором регулярном выражении, offensiveWords, я использую правильный синтаксис с этим? Я хочу проверить ввод этих двух слов: ненависть и notCool. – Ktown

+0

Это должно быть 'new RegExp (" \ b (hate | notCool) \ b "," gi ")' вместо этого. –