Created
January 15, 2012 03:05
-
-
Save tkh44/1614089 to your computer and use it in GitHub Desktop.
field validation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var validate = { | |
/** | |
* Username value check: must contain a lower and upper case letter and at least 1 number. Cannot contain special characters. | |
* @param field {NodeObject} the field object | |
* @return {boolean} the result of validation | |
*/ | |
username: function(field){ | |
//Regex statements are broken into parts for ease of maintenance. | |
var reUsernameUpperCase = /[A-Z]/, | |
reUsernameLowerCase = /[a-z]/, | |
reUsernameNumber = /[0-9]/, | |
reUsernameSpecial = /[^a-zA-Z0-9]/; | |
var usernameValue = field.get("value"); | |
if(reUsernameUpperCase.test(usernameValue) && reUsernameLowerCase.test(usernameValue) && reUsernameNumber.test(usernameValue)){ | |
if(!reUsernameSpecial.test(usernameValue)){ | |
return true; | |
}else{ | |
return false; | |
} | |
}else{ | |
return false; | |
} | |
}, | |
/** | |
* Password value check: must contain at least 2 numbers and be 8 to 15 characters in length | |
* @param field {NodeObject} the field object | |
* @return {boolean} the result of validation | |
*/ | |
password: function(field){ | |
var rePassword = /^(?=.*\d{2,}).{8,15}$/;//http://regexr.com?2vndp | |
var passwordValue = field.get("value"); | |
if(rePassword.test(passwordValue)){ | |
return true; | |
}else{ | |
return false; | |
} | |
}, | |
/** | |
* Usernumber value check: must be 36 digits and have no non-numeral characters | |
* @param field {NodeObject} the field object | |
* @return {boolean} the result of validation | |
*/ | |
usernumber: function(field){ | |
var reUsernumber = /^[0-9]{36}(?!\D)$/;//http://regexr.com?2vndm | |
var usernumberValue = field.get('value'); | |
if(reUsernumber.test(usernumberValue)){ | |
return true; | |
}else{ | |
return false; | |
} | |
} | |
}; | |
/** | |
* checkField: checks a input field agaisnt a validator function. | |
* @param fieldID {string} the id of the field to be checked. "#id" | |
* @param validateFunction {string} the validate function to check the field with. "validate.username" | |
*/ | |
var checkField = function(fieldID, validateFunction){ | |
Y.one(fieldID).on('keyup', function(e){ | |
if(validateFunction(this)){ | |
this.addClass('success'); | |
this.removeClass('error'); | |
}else{ | |
this.removeClass('success'); | |
this.addClass('error'); | |
} | |
}); | |
}; | |
var loginFormValidation = function(){ | |
checkField('#username', validate.username); | |
checkField('#password', validate.password); | |
checkField('#usernumber', validate.usernumber); | |
Y.one("#loginform").on("submit", function(e){ | |
e.preventDefault(); | |
var errorMessage = Y.one('#loginformerror'); | |
if(validate.username(Y.one('#username')) && validate.password(Y.one('#password')) && validate.usernumber(Y.one('#usernumber'))){ | |
errorMessage.setContent('<p></p>'); | |
document.loginform.submit(); | |
}else{ | |
errorMessage.setContent('<p>There was an error in the form. Please try again.</p>'); | |
} | |
}); | |
return false; | |
}; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment