Skip to content

Instantly share code, notes, and snippets.

@mmloveaa
Last active December 27, 2015 19:13
Show Gist options
  • Save mmloveaa/b0d306a316c8fbc3fba1 to your computer and use it in GitHub Desktop.
Save mmloveaa/b0d306a316c8fbc3fba1 to your computer and use it in GitHub Desktop.
Email Validation
// 12/23/2015
// Write a function to test whether a given input is a valid email address.
// For the purposes of this kata, here is what makes a valid email:
// At least one letter character at the beginning >>>>>
// All characters between the first character and the @ (if any)
// must be letters, numbers, or underscores >>>>>
// There must be an @ character (after the points listed just now) >>>>>
// After the @ character, there must be at least one word character (letter,
// number, or underscore) or hyphen
// The email must end with at least one set of a dot followed by one or more
// word characters.
// The input must NOT be case-sensitive
// The function should return true or false.
function validate(input){
input = input.toUpperCase();
var code1stletter=input.charCodeAt(0)
var charactersbetween=input.split("@");
if(input.indexOf("@")===-1){
return false;
}
if(input.indexOf(".")===-1){
return false;
}
var lettersBeforeAt=charactersbetween[0];
if(!(code1stletter<=90 && code1stletter>=65)) {
return false;
}
for( var i=1;i<lettersBeforeAt.length; i++){
var ch = lettersBeforeAt.charCodeAt(i);
if(!((ch<=90 && ch>=65) || (ch<=57 && ch>=48) || (ch===95))){
return false;
}
}
var lettersAfterAt=charactersbetween[1];
console.log('Letters after at', lettersAfterAt)
var lettersBeforeDot=lettersAfterAt.split(".")[0]
console.log('Letters before dot', lettersBeforeDot)
console.log('length of letters before dot', lettersBeforeDot.length)
if(lettersBeforeDot.length===0){
return false;
}
for (var j=0; j<lettersBeforeDot.length; j++){
console.log('inside for loop chekcing letters before dot')
var ch1 = lettersBeforeDot.charCodeAt(j);
if(!((ch1<=90 && ch1>=65) || (ch1<=57 && ch1>=48) || (ch1===95) || (ch1===45))){
return false;
}
}
var lettersAfterDot=lettersAfterAt.split(".")[1]
// console.log(lettersAfterDot)
for (var z=0; z<lettersAfterDot.length; z++){
var ch2 = lettersAfterDot.charCodeAt(z);
if(!((ch2<=90 && ch2>=65) || (ch2<=57 && ch2>=48) || (ch2===95) || (ch2===45))){
return false;
}
}
return true;
}
validate('abc@.com')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment