Laravel 5.8中印地语与英文兼容的PHP正则验证需求
支持印地语与英文混合输入的Laravel验证正则方案
有效正则表达式
针对允许印地语天城文、英文大小写字母、数字、空格、-和/的需求,可使用以下正则模式:
^[A-Za-z0-9\u0900-\u097F\-\/\s]+$
Laravel Request类中的正确用法
在Request验证规则里,不要添加正则分隔符/,Laravel会自动处理正则解析,完整规则如下:
public function rules() { return [ 'title' => 'required|min:3|regex:^[A-Za-z0-9\u0900-\u097F\-\/\s]+$', ]; }
问题原因分析
- 你之前的纯印地语正则只允许印地语字符和空格,完全排除了英文、数字及特殊符号,自然无法通过混合输入的字符串。
- 在Laravel Request类中使用带
/分隔符的正则时,会因为框架的转义逻辑导致规则失效,去掉分隔符即可解决。 - 原混合正则未正确处理字符集里的
-(需转义避免被解析为范围符号),用\s匹配空格比直接写空格更通用可靠。
测试验证
用你提供的测试字符串 गुढ़ी पाडवा/चेती चंद / उगाडी / Gudi Padwa/Cheti Chand / Ugadi 测试,上述规则可正常通过,同时会拦截包含!@#$%等未允许特殊字符的输入。
内容的提问来源于stack exchange,提问作者HV Sharma
相关产品推荐
相关产品推荐

