以下是我的项目名称规则:
$this->validate(request(), [
'projectName' => 'required|regex:/(^([a-zA-z]+)(\d+)?$)/u',
];
我正在尝试添加规则,使其必须以来信a-z
or A-z
可以以数字结尾,但大多数不是。
项目名称的有效值:
myproject123
myproject
MyProject
项目名称的值无效:
123myproject
!myproject
myproject 123
my project
my project123
我在线尝试了我的正则表达式:
https://regex101.com/r/FylFY1/2 https://regex101.com/r/FylFY1/2
它应该可以工作,但即使使用我也可以通过验证project 123
.
UPDATE:它确实有效,我只是在错误的控制器中测试了它,对不起......但也许它会对其他人有所帮助
你的规则做得很好BUT你需要知道,用管道分隔的正则表达式指定验证规则can lead不良行为。
定义验证规则的正确方法应该是:
$this->validate(request(), [
'projectName' =>
array(
'required',
'regex:/(^([a-zA-Z]+)(\d+)?$)/u'
)
]);
您可以阅读官方文档 https://laravel.com/docs/5.6/validation#rule-regex:
正则表达式:模式
验证的字段必须与给定的正则表达式匹配。
注意:当使用 regex / not_regex 模式时,它可能需要在数组中指定规则而不是使用管道分隔符,特别是当正则表达式包含管道字符时。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)