我已经为我的 Nuxt 项目集成了 Vuelidate 插件,并且我想向其中添加自定义验证,每当用户输入 URL 和 www 时。被替换,然后我可以使用正则表达式 (?:(?:[a-zA-Z0-9])(?:[-.][a-zA-Z0-9])?)+(?:\.[a-z]{2,6})+$
这就是我试图实现它的方式
const customValidate = (value, vm) => {
this.domainCheck = value.replaceAll('www.')
return vm.domainCheck.match(
/(?:(?:[a-zA-Z0-9])(?:[-.][a-zA-Z0-9])?)+(?:\.[a-z]{2,6})+$/
)
}
data(){
return{
domainName: ''
domainCheck : ''
}
}
validations:{
domainName:{
customValidate
}
}
有没有办法实现这一点,或者只有在提交表单并检查验证后才有可能实现?
答案 0 :(得分:1)
看起来我找到了解决问题的方法 我是通过以下方式做到的:
const customDomainCheck = (value) => {
let domainCheck = ''
if (value.includes('www.')) {
domainCheck = value.replaceAll('www.')
}
if (domainCheck) {
// eslint-disable-next-line prefer-regex-literals
const regex = new RegExp(
/(?:(?:[a-zA-Z0-9])(?:[-.][a-zA-Z0-9])?)+(?:\.[a-z]{2,6})+$/
)
return regex.test(domainCheck)
}
return true
}
data(){
return{
domainName: ''
}
}
validations:{
domainName:{customDomainCheck}
}
任何进一步的建议都会很棒!