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

Laravel 10字符串验证问题:如何禁止输入#字符?

Laravel 10 字符串验证问题解决方案

你当前使用的正则/[^#]*/无法拦截含#的字符串,原因是它仅要求字符串中存在一段不含#的子串——哪怕后面跟着#,验证也会通过。

以下是两种可行的解决方案:

方法一:修正正则表达式

将正则改为/^[^#]+$/,该规则会强制要求整个字符串从开头到结尾都不包含#:

  • ^:匹配字符串起始位置
  • [^#]+:匹配1个及以上非#的字符
  • $:匹配字符串结束位置

修改后的验证代码:

$request->validate([
    'code' => 'required|max:11|regex:/^[^#]+$/',
]);

方法二:使用not_regex规则(更直观)

如果觉得正则写法不够清晰,可以用Laravel内置的not_regex规则,直接指定不能包含#:

$request->validate([
    'code' => 'required|max:11|not_regex:/#/',
]);

这个规则会检查字符串中是否存在#,只要出现就会验证失败,完全符合需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 18:14:50