Bla*_*ack 26 php laravel laravel-5 laravel-5.4
以下是项目名称的规则:
$this->validate(request(), [
'projectName' => 'required|regex:/(^([a-zA-z]+)(\d+)?$)/u',
];
Run Code Online (Sandbox Code Playgroud)
我试图添加规则,以便它必须从一个字母开始,或者可以以数字结尾但最不是.a-zA-z
项目名称的有效值:
myproject123
myproject
MyProject
Run Code Online (Sandbox Code Playgroud)
项目名称的值无效:
123myproject
!myproject
myproject 123
my project
my project123
Run Code Online (Sandbox Code Playgroud)
我在网上尝试了我的正则表达式:
https://regex101.com/r/FylFY1/2
它应该工作,但我可以通过验证project 123.
更新:它确实有效,我只是在错误的控制器中测试它,对不起......但也许它会帮助其他人
Tro*_*yer 54
你的规则做得很好但是你需要知道,用管道分隔的正则表达式指定验证规则会导致不希望的行为.
定义验证规则的正确方法应该是:
$this->validate(request(), [
'projectName' =>
array(
'required',
'regex:/(^([a-zA-Z]+)(\d+)?$)/u'
)
];
Run Code Online (Sandbox Code Playgroud)
您可以阅读官方文档:
正则表达式:模式
验证字段必须与给定的正则表达式匹配.
注意:使用regex/not_regex模式时,可能需要在数组中指定规则而不是使用管道分隔符,尤其是在正则表达式包含管道符时.
| 归档时间: |
|
| 查看次数: |
62363 次 |
| 最近记录: |