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

Laravel验证中编写正则禁止用户名字段输入邮箱地址的方法

Laravel用户名禁止输入邮箱的正则验证实现

核心实现思路

通过否定前瞻正则匹配,拦截符合邮箱特征的输入内容,Laravel中使用regex规则时优先用数组格式定义验证规则,避免竖线分隔导致正则解析错误。

正则方案1:宽泛拦截(只要包含邮箱特征就禁止)

只要输入内容包含@且@后存在.就拦截,适合完全不允许用户名出现邮箱相关格式的场景,正则为:
/^(?!.*@.*\..*).*$/u

完整验证规则写法:

'username' => [
    'required',
    'min:5',
    'regex:/^(?!.*@.*\..*).*$/u'
]

正则方案2:精准拦截(仅禁止完整标准邮箱格式)

仅当输入完全符合标准邮箱格式时才拦截,允许带@但不符合邮箱规则的内容,正则为:
/^(?!^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$).*$/u

完整验证规则写法:

'username' => [
    'required',
    'min:5',
    'regex:/^(?!^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$).*$/u'
]

补充说明

  • 正则末尾的u修饰符用于兼容中文等多字节用户名,若用户名仅允许英文数字可去掉
  • 两种方案可根据业务需求灵活选择,方案1拦截逻辑更严格,方案2兼容性更强

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 20:36:02