diff --git a/src/lib/isEmail.js b/src/lib/isEmail.js index 1aceca3cf..308f522d4 100644 --- a/src/lib/isEmail.js +++ b/src/lib/isEmail.js @@ -10,6 +10,7 @@ const default_email_options = { allow_underscores: false, require_display_name: false, allow_utf8_local_part: true, + allow_idn: true, require_tld: true, blacklisted_chars: '', ignore_max_length: false, @@ -144,6 +145,7 @@ export default function isEmail(str, options) { require_tld: options.require_tld, ignore_max_length: options.ignore_max_length, allow_underscores: options.allow_underscores, + allow_idn: options.allow_idn, })) { if (!options.allow_ip_domain) { return false; diff --git a/src/lib/isFQDN.js b/src/lib/isFQDN.js index eb6928fda..394b76387 100644 --- a/src/lib/isFQDN.js +++ b/src/lib/isFQDN.js @@ -7,6 +7,7 @@ const default_fqdn_options = { allow_trailing_dot: false, allow_numeric_tld: false, allow_wildcard: false, + allow_idn: true, ignore_max_length: false, }; @@ -71,6 +72,11 @@ export default function isFQDN(str, options) { return false; } + // verify if domain is IDN + if (!options.allow_idn && !/^[a-z0-9-_]+$/i.test(part)) { + return false; + } + return true; }); }