Skip to content
Snippets Groups Projects

refine url validation, fixes #4021

Merged Jan-Hendrik Willms requested to merge biest-4021 into main
1 file
+ 9
10
Compare changes
  • Side-by-side
  • Inline
@@ -234,17 +234,16 @@ export default {
@@ -234,17 +234,16 @@ export default {
this.currentUrlIsValid = this.isValidUrl(this.currentUrl);
this.currentUrlIsValid = this.isValidUrl(this.currentUrl);
},
},
isValidUrl(urlString) {
isValidUrl(urlString) {
const urlPattern = new RegExp(
if (!urlString.startsWith('http')) {
'^(https?:\\/\\/)?' + // validate protocol
urlString = `${location.protocol}//${urlString}`;
'((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|' + // validate domain name
}
'((\\d{1,3}\\.){3}\\d{1,3}))' + // validate OR ip (v4) address
'(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*' + // validate port and path
'(\\?[;&a-z\\d%_.~+=-]*)?' + // validate query string
'(\\#[-a-z\\d_]*)?$',
'i'
); // validate fragment locator
return !!urlPattern.test(urlString);
try {
 
const url = new URL(urlString);
 
return ['http:', 'https:'].includes(url.protocol);
 
} catch (e) {
 
return false;
 
}
},
},
updateUrl() {
updateUrl() {
Loading