I have a function in Typescript testing rules for a text field in Vue using Vuetify.
Things like https://www.cnn.com, www.test.xxx fails validation. I cant seem to comprehend why...
Vuetify text-field (Vuetify v.2.2.26) :
<v-text-field label="Web site" dense :rules="webSiteRules" :readonly="!editing" v-model="profile.WebSite" />
Code (imported in .vue file - using single file components):
export function websiteRules(): ((v: string) => boolean | string)[] {
const regexp = /^(http:\/\/www\.|https:\/\/www\.|http:\/\/|https:\/\/)?[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(:[0-9]{1,5})?(\/.*)?$/gim;
return [
(v: string): boolean | string => !!v || 'Web site required',
(v: string): boolean | string =>
regexp.test(v) || 'Wrong format. use e.g. http(s)://www.cnn.com'
];
}