mirror of
https://github.com/twentyhq/twenty.git
synced 2024-12-18 09:02:11 +03:00
Fix URL validation on long/internationalized URLs (#1423)
* Add URL validation tests Add test for longer TLDs Add test for internationalized TLDs * Fix URL validation with long TLDs * TLD max size match RFC 1034 --------- Co-authored-by: Jérémy M <jeremy.magrin@gmail.com>
This commit is contained in:
parent
a46210bb80
commit
c998c039ec
@ -44,4 +44,19 @@ describe('isURL', () => {
|
||||
),
|
||||
).toBeTruthy();
|
||||
});
|
||||
|
||||
it('should return true if the TLD is long', () => {
|
||||
expect(isURL('https://example.travelinsurance')).toBeTruthy();
|
||||
});
|
||||
|
||||
it('should return true if the TLD is internationalized', () => {
|
||||
// The longest TLD as of now
|
||||
// https://stackoverflow.com/questions/9238640/how-long-can-a-tld-possibly-be
|
||||
// curl -s http://data.iana.org/TLD/tlds-alpha-by-domain.txt \
|
||||
// | tail -n+2 \
|
||||
// | awk '{ print length, $0 }' \
|
||||
// | sort --numeric-sort --reverse \
|
||||
// | head -n 5
|
||||
expect(isURL('https://example.xn--vermgensberatung-pwb')).toBeTruthy();
|
||||
});
|
||||
});
|
||||
|
@ -4,7 +4,7 @@ export function isURL(url: string | undefined | null) {
|
||||
return (
|
||||
isDefined(url) &&
|
||||
url.match(
|
||||
/^(https?:\/\/)?(www.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-z]{2,4}\b([-a-zA-Z0-9@:%_+.~#?&//=]*)/i,
|
||||
/^(https?:\/\/)?(www.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-z]{2,63}\b([-a-zA-Z0-9@:%_+.~#?&//=]*)/i,
|
||||
)
|
||||
);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user