vue.js - 验证芯片内的电子邮件地址
问题描述
我正在尝试创建一个用户可以输入多个有效电子邮件地址的字段。Onclick 'Enter' 键,将验证最后输入的电子邮件是否为有效电子邮件。我试图用我在下面提出的内容来做到这一点,但我对 Vue JS 或 Vuetify JS 没有足够的知识。我认为我验证电子邮件地址的方法不正确(!(v => /.+@.+/.test(v))
),我只是从 Vuetify JS 网站的表单示例中获取的。我想问一下-在这种情况下验证电子邮件的正确方法是什么?
这是我的代码:
<template>
<v-combobox v-model="chips"
label="Emails"
chips
clearable
solo
:rules="emailRules"
multiple>
<template v-slot:selection="data">
<v-chip :selected="data.selected"
close
@input="remove(data.item)">
<strong>{{ data.item }}</strong>
</v-chip>
</template>
</v-combobox>
</template>
<script>
export default {
data() {
return {
chips: [],
emailRules :[
v => {
if (!v || v.length < 1)
return 'Input is required';
else if (v.length > 0) {
for (let i = 0; i < v.length; i++) {
if ((i == v.length-1) && !(v => /.+@.+/.test(v)))
return 'Invalid email';
}
}
else return true;
}
]
}
},
methods: {
remove(item) {
this.chips.splice(this.chips.indexOf(item), 1)
this.chips = [...this.chips]
}
}
}
</script>
非常感谢!
解决方案
我是这样做的:
if (!(/^(([^<>()\[\]\\.,;:\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,24}))$/.test(v[i]))) {
return 'Invalid email';
}
现在可以了。
推荐阅读
- xcode - 集合视图不遵守 Xcode 中的约束
- php - 未定义的变量:请求 - Laravel 5.1
- python - AttributeError:模块''没有属性'__path__'
- python - Google Drive API v3 Python files().list() 中缺少某些文件
- algorithm - 找到最近的时间跨度
- typescript - 打字稿工厂类和泛型不起作用
- openssl - mysql ssl 春季启动 2
- ios - Swift 4 显示/隐藏键盘查看
- sql - 通过存储过程将 SQL 变量传递到“IN”子句中
- javascript - 试图将值从 jsx 传递给 js