diff --git a/resources/assets/js/helpers/utilities.js b/resources/assets/js/helpers/utilities.js index 409b756f..442af4c4 100644 --- a/resources/assets/js/helpers/utilities.js +++ b/resources/assets/js/helpers/utilities.js @@ -87,5 +87,16 @@ export default { } catch (e) { console.log(e) } + }, + + checkValidUrl (url) { + let pattern = new RegExp('^(https?:\\/\\/)?' + // protocol + '((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|' + // domain name + '((\\d{1,3}\\.){3}\\d{1,3}))' + // OR ip (v4) address + '(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*' + // port and path + '(\\?[;&a-z\\d%_.~+=-]*)?' + // query string + '(\\#[-a-z\\d_]*)?$', 'i') // fragment locator + + return !!pattern.test(url) } } diff --git a/resources/assets/js/views/estimates/Item.vue b/resources/assets/js/views/estimates/Item.vue index 5454831b..eea77b32 100644 --- a/resources/assets/js/views/estimates/Item.vue +++ b/resources/assets/js/views/estimates/Item.vue @@ -36,7 +36,7 @@ {{ $tc('validation.required') }} - + {{ $tc('validation.invalid_url') }} @@ -184,7 +184,9 @@ export default { }, app_url: { required, - url + isUrl (val) { + return this.$utils.checkValidUrl(val) + } } } },