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

React输入框正则验证问题:邮箱需以@gmail.com结尾但验证失败

解决邮箱必须以@gmail.com结尾的验证问题

你的验证失败是因为当前的正则规则只匹配了结尾的@gmail.com,但没有允许@前面的邮箱前缀内容,再加上type="email"的基础校验,导致合法的gmail邮箱也无法通过验证。

修正方案

把input的pattern属性改成完整的正则规则,匹配合法前缀 + @gmail.com结尾:

const CreatePeople = () => {
  return (
    <div className="people-form">
      <form action="#" id="create-people-form">
        <label htmlFor="create-people-email">Email</label>
        <input
          type="email"
          name="email"
          id="create-people-email"
          pattern="^[a-zA-Z0-9._%+-]+@gmail\.com$"
          title="请输入以@gmail.com结尾的邮箱地址"
          required
        />
        {/* unnecessary stuff */}
        <button type="submit">Finish</button>
      </form>
    </div>
  );
};

正则规则说明

  • ^:锁定字符串开头
  • [a-zA-Z0-9._%+-]+:匹配邮箱前缀,允许字母、数字和邮箱常用符号(.、_、%、+、-),+确保前缀至少有一个字符
  • @gmail\.com:精确匹配@gmail.com,其中.用\.转义(正则中.是通配符,需要转义才能匹配实际的点)
  • $:锁定字符串结尾

添加title属性后,验证失败时浏览器会显示自定义提示文案,提升用户体验。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 06:03:15