diff --git a/String/ValidateEmail.js b/String/ValidateEmail.js index af2ee3f09d..1e1ace2f15 100644 --- a/String/ValidateEmail.js +++ b/String/ValidateEmail.js @@ -2,6 +2,7 @@ function that takes a string input and return either it is true of false a valid email address e.g.: mahfoudh.arous@gmail.com -> true + e.g.: mahfoudh.arous@helsinki.edu -> true e.g.: mahfoudh.arous.com ->false */ @@ -9,11 +10,8 @@ const validateEmail = (str) => { if (str === '' || str === null) { throw new TypeError('Email Address String Null or Empty.') } - if (str.startsWith('@') === true || !str.includes('@') || !str.endsWith('.com')) { - return false - } - return true + return /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(str) } export { validateEmail } diff --git a/String/ValidateEmail.test.js b/String/test/ValidateEmail.test.js similarity index 75% rename from String/ValidateEmail.test.js rename to String/test/ValidateEmail.test.js index a10f8279cf..ec1046c275 100644 --- a/String/ValidateEmail.test.js +++ b/String/test/ValidateEmail.test.js @@ -1,4 +1,4 @@ -import { validateEmail } from './ValidateEmail' +import { validateEmail } from '../ValidateEmail' describe('Validation of an Email Address', () => { it('expects to return false', () => { @@ -13,6 +13,10 @@ describe('Validation of an Email Address', () => { expect(validateEmail('mahfoudh.arous@gmail.com')).toEqual(true) }) + it('expects to return true', () => { + expect(validateEmail('icristianbaciu@.helsinki.edu')).toEqual(true) + }) + it('expects to throw a type error', () => { expect(() => { validateEmail('') }).toThrow('Email Address String Null or Empty.') })