Vue Vee-validate, отмечающий действительные URL-адреса как недействительные
Для моего приложения Vuejs я использую Vee-validate для проверки. В настоящее время он помечает действительные URL, например, http://localhost:3000
, как недействительный.
Это происходит на их примере также: http://vee-validate.logaretm.com/rules.html
Если вы введете http://localhost:3000
в их примере вы увидите сообщение The field field is not a valid URL.
1 ответ
Решение
После поиска я нашел некоторые связанные проблемы на Github от Vee-validate, но ни одна из них полностью не решила мою проблему. Вот что мне нужно было сделать, чтобы проверить локальные URL-адреса:
Добавить пакет валидатора
npm install validator
Добавить новое правило:
const urlFixRule = (value) => { return isURL(value, { require_tld: false }); };
Примените новое правило:
VeeValidate.Validator.extend('url', urlFixRule);
Как это выглядит в моем файле JS
import Vue from 'vue';
import isURL from 'validator/lib/isURL';
import VeeValidate from 'vee-validate';
import App from './App';
// Form Validation (https://github.com/baianat/vee-validate)
Vue.use(VeeValidate);
// Temporary Fix for Vee-validate bug, until the next release
const urlFixRule = (value) => {
return isURL(value, {
require_tld: false
});
};
VeeValidate.Validator.extend('url', urlFixRule);
/* eslint-disable no-new */
new Vue({
el: '#app',
template: '<App/>',
components: { App }
});