diff --git a/src/lib/isFQDN.js b/src/lib/isFQDN.js index b82b08941..4a04cf34e 100644 --- a/src/lib/isFQDN.js +++ b/src/lib/isFQDN.js @@ -32,12 +32,12 @@ export default function isFQDN(str, options) { return false; } - if (!/^([a-z\u00a1-\uffff]{2,}|xn[a-z0-9-]{2,})$/i.test(tld)) { + if (!/^([a-z\u00A1-\u00A8\u00AA-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{2,}|xn[a-z0-9-]{2,})$/i.test(tld)) { return false; } - // disallow spaces && special characers - if (/[\s\u2002-\u200B\u202F\u205F\u3000\uFEFF\uDB40\uDC20\u00A9\uFFFD]/.test(tld)) { + // disallow spaces + if (/\s/.test(tld)) { return false; } } diff --git a/test/validators.js b/test/validators.js index c48b2ee95..b53d15374 100644 --- a/test/validators.js +++ b/test/validators.js @@ -1099,6 +1099,18 @@ describe('Validators', () => { 'domain.com/', '/more.com', 'domain.com�', + 'domain.co\u00A0m', + 'domain.co\u1680m', + 'domain.co\u2006m', + 'domain.co\u2028m', + 'domain.co\u2029m', + 'domain.co\u202Fm', + 'domain.co\u205Fm', + 'domain.co\u3000m', + 'domain.com\uDC00', + 'domain.co\uEFFFm', + 'domain.co\uFDDAm', + 'domain.co\uFFF4m', 'domain.com©', 'example.0', '192.168.0.9999',