Javascript正则表达式表单验证

Javascript正则表达式表单验证,javascript,Javascript,我有一个HTML表单,我想用正则表达式验证它。我将regex包含在一个名为emailRegex的方法中,然后在validateEmail方法中调用该方法。当它试图在validateEmail中调用我的emailRegex方法时,我遇到了一个错误。有人能告诉我我这里做错了什么吗 var validation={ emailRegex: function() {//new email Regular Expression for validateEmail method return /^

我有一个HTML表单,我想用正则表达式验证它。我将regex包含在一个名为emailRegex的方法中,然后在validateEmail方法中调用该方法。当它试图在validateEmail中调用我的emailRegex方法时,我遇到了一个错误。有人能告诉我我这里做错了什么吗

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;

}
}

我猜您正在看到一个
引用错误

ReferenceError:未定义emailRegex

您的变量,
emailRegex
是一个函数,而不是属性

你应该这样称呼它:

var regex = this.emailRegex();

那么你得到的错误是什么?将你的正则表达式与此进行比较:我有另一个快速的问题。在我的第二个正则表达式中,攻击性词语,我是否使用了正确的语法?我想检查输入与这两个词:恨和不酷。