首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >电子邮件验证n vuetify.js

电子邮件验证n vuetify.js
EN

Stack Overflow用户
提问于 2018-04-26 17:44:10
回答 4查看 20.9K关注 0票数 8

我有一个电子邮件字段

代码语言:javascript
复制
    <template>
  <v-form v-model="valid">
    <v-text-field
      label="Name"
      v-model="name"
      :rules="nameRules"
      :counter="10"
      required
    ></v-text-field>
    <v-text-field
      label="E-mail"
      v-model="email"
      :rules="emailRules"

    ></v-text-field>
  </v-form>
</template>

和验证规则,比如,

代码语言:javascript
复制
 <script>
  export default {
    data: () => ({
      valid: false,
      name: '',
      nameRules: [
        v => !!v || 'Name is required',
        v => v.length <= 10 || 'Name must be less than 10 characters'
      ],
      email: '',
      emailRules: [ 
        v => /^\w+([.-]?\w+)*@\w+([.-]?\w+)*(\.\w{2,3})+$/.test(v) || 'E-mail must be valid'
      ]
    })
  }
</script>

但是当我提交表单时它会验证表单,只有当email.length>0时我才需要验证电子邮件。ie电子邮件不是必填字段,但如果键入电子邮件,则必须进行验证。

我也尝试过,当我像这样在脚本中更改:rules="[emailRules.em]"

代码语言:javascript
复制
emailRules: { 
                        em:v => {
                        if(v.length > 0 && /^\w+([.-]?\w+)*@\w+([.-]?\w+)*(\.\w{2,3})+$/.test(v) )
                            return ''E-mail must be valid';  
                          return true;
                    }
                    }

它总是返回true

EN

回答 4

Stack Overflow用户

发布于 2020-01-05 17:16:59

只需在规则的开头添加条件!v:

代码语言:javascript
复制
 emailRules: [ 
        v => !v || /^\w+([.-]?\w+)*@\w+([.-]?\w+)*(\.\w{2,3})+$/.test(v) || 'E-mail must be valid'
      ]
票数 18
EN

Stack Overflow用户

发布于 2018-09-22 00:38:55

这对我很有效。

代码语言:javascript
复制
email: value => {
      if(value.length > 0) {
      const pattern = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
      return pattern.test(value) || 'Invalid e-mail.';
      }
    }
票数 4
EN

Stack Overflow用户

发布于 2019-04-16 14:03:45

看看这个..

代码语言:javascript
复制
emailRules: [ v => /.+@.+/.test(v) || 'Invalid Email address' ]
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50039793

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档