是的,在 vue 3 中只允许一个域地址?

Yup that only allows a single domain address in vue 3?

我有一个添加用户表单,需要在 Yup 中只允许一个域地址,例如这里的 (sponge@abc.com) 必须只允许 "@abc.com"。不允许 @outlook.com ,不允许 @gmail.com 等等。有什么帮助吗?提前谢谢你。

  const addUser = Yup.object().shape({
      email: Yup.string()
        .email(i18n.t("form.message.email"))
        .required(i18n.t("form.message.required")),
      first_name: Yup.string().required(i18n.t("form.message.required")),
      last_name: Yup.string().required(i18n.t("form.message.required")),
    });

这是html代码

   <div class="mb-4 col-sm-12">
            <label class="form-label fw-bold"
              >{{ $t("form.label.email") }}:</label
            >
            <Field
              class="form-control"
              type="email"
              v-model="email"
              name="email"
              autocomplete="off"
              :placeholder="$t('form.label.email')"
            />
            <div class="fv-plugins-message-container">
              <div class="fv-help-block">
                <ErrorMessage name="email" />
              </div>
            </div>
          </div>

您应该使用正则表达式来验证电子邮件域

const addUser = Yup.object().shape({
      email: Yup.string()
        .email(i18n.t("form.message.email")) 
        .required(i18n.t("form.message.required"))
         .matches(/\@abc.com$/, 'Domain not allowed) // <--- Add this,
      first_name: Yup.string().required(i18n.t("form.message.required")),
      last_name: Yup.string().required(i18n.t("form.message.required")),
});