1 changed files with 12 additions and 2 deletions
@ -1,4 +1,14 @@ |
|||||||
export function isValidUrl(url: string): boolean { |
export function isValidUrl(url: string): boolean { |
||||||
const pattern = /^(?:(?:https?|ftp):\/\/)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})))(?::\d{2,5})?(?:\/\S*)?$/i; |
const validProtocols = ['http:', 'https:']; |
||||||
return !!pattern.test(url); |
|
||||||
|
try { |
||||||
|
const validationObject = new URL(url); |
||||||
|
if (validationObject.protocol === '' || validationObject.hostname === '' || !validProtocols.includes(validationObject.protocol)) { |
||||||
|
return false |
||||||
|
} |
||||||
|
} catch(e) { |
||||||
|
return false; |
||||||
|
} |
||||||
|
|
||||||
|
return true |
||||||
} |
} |
||||||
|
|||||||
Loading…
Reference in new issue