validatorjs / validator.js

String validation
MIT License
23.12k stars 2.31k forks source link

Email validator accepts special character "¸" which should not be valid #2360

Open RaminGe opened 9 months ago

RaminGe commented 9 months ago

Describe the bug This email is invalid but the validator returns that it is valid: te¸st@test.com

Examples

// Current behaviour:
console.log(validator.isEmail('te¸st@test.com')); // => true

// Expected behaviour:
console.log(validator.isEmail('te¸st@test.com')); // => false

Additional context Validator.js version: 13.11.0 (latest)

WikiRik commented 9 months ago

I'm not knowledgeable enough about the exact email standards to determine if this is a bug or not, but you can set the allow_utf8_local_part option to false to mark the email address you provided as invalid. From the README; "If allow_utf8_local_part is set to false, the validator will not allow any non-English UTF8 character in email address' local part"

RaminGe commented 9 months ago

Thanks @WikiRik I'll use this option. I still think it's an invalid email address in general so I guess it makes sense to show it as invalid in general but maybe it needs some more research to be sure.

devmanbud commented 9 months ago

I've changed allow_utf8_local_part set to false how do I test it?

RaminGe commented 9 months ago

I've changed allow_utf8_local_part set to false how do I test it?

Simply pass the email to the function and log it:


// allow_utf8_local_part === false:
console.log(validator.isEmail('te¸st@test.com')); // => true

// allow_utf8_local_part === true:
console.log(validator.isEmail('te¸st@test.com')); // => false
devmanbud commented 9 months ago

how do I log this

devmanbud commented 9 months ago

run*

Sumit-tech-joshi commented 7 months ago

Created pull request for the bug fix: https://github.com/validatorjs/validator.js/pull/2384