You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel场景下Vue.js邮箱验证支持多邮箱输入的可行性及实现问询

当然可以调整,你当前用的是单邮箱校验规则,只需要自定义适配多邮箱场景的校验规则即可,操作步骤如下:

步骤1:修改输入框属性

把原有邮箱输入框的type="email"改为type="text",避免浏览器原生单邮箱校验规则拦截多邮箱输入:

<input type="text" name="contact_email" v-model="$v.contact_email.$model" class="form-control">

步骤2:自定义多邮箱校验规则

基于你已经引入的单邮箱校验器email,新增多邮箱校验逻辑:

import { email } from 'vuelidate/lib/validators'

// 自定义多邮箱校验规则:支持英文逗号分隔多个邮箱
const multiEmail = (value) => {
  // 若允许空值直接返回true,不允许空可后续搭配required规则使用
  if (!value) return true
  // 拆分邮箱并去除前后空格,过滤空项
  const emailArr = value.split(',').map(item => item.trim()).filter(Boolean)
  // 逐个校验每个邮箱格式合法性
  return emailArr.every(singleEmail => email(singleEmail))
}

步骤3:替换原有校验规则

修改验证规则配置,把原来的单邮箱email规则换成自定义的multiEmail:

validations: {
  contact_email: {
    multiEmail
  },
},

步骤4:调整错误提示

修改模板中的错误提示对应新的规则名:

<div v-if="$v.contact_email.$dirty">
  <p class="error" v-if="!$v.contact_email.multiEmail">请输入合法的邮箱地址,多个邮箱请用英文逗号分隔</p>
</div>

可选扩展

如果需要限制可输入的邮箱数量,可在multiEmail规则中增加长度判断,比如限制最多输入20个邮箱,只需要在返回判断中增加对应条件即可:

return emailArr.length <= 20 && emailArr.every(singleEmail => email(singleEmail))

内容的提问来源于stack exchange,提问作者Angel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 04:06:05