Skip to content

Instantly share code, notes, and snippets.

@tkh44
Created January 15, 2012 03:05
Show Gist options
  • Save tkh44/1614089 to your computer and use it in GitHub Desktop.
Save tkh44/1614089 to your computer and use it in GitHub Desktop.
field validation
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