【问题标题】:Custom validation in vuelidate pluginvuelidate 插件中的自定义验证
【发布时间】:2021-06-09 07:11:17
【问题描述】:

我已经为我的 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
 }
}

有没有办法实现这一点,或者只有在提交表单并检查验证后才能实现?

【问题讨论】:

标签: javascript vue.js nuxt.js vuelidate


【解决方案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}
}

任何进一步的建议都会很棒!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多