Last active
December 27, 2015 19:13
-
-
Save mmloveaa/b0d306a316c8fbc3fba1 to your computer and use it in GitHub Desktop.
Email Validation
This file contains 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
// 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