I have an HTML form that i want to validate with a regex. I have the regex contained in a method called emailRegex, which is then called within the validateEmail method. I"m getting an error when it tries to call my emailRegex method within the validateEmail. Can anyone tell me what I'm doing wrong here?
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;
}
}