我正在使用Laravel 4.2.我试图使用Validator验证名称字段与正则表达式,这是我的规则如下:
public static $rules_save = [
'class_subjects' => 'required|regex:/[0-9]([0-9]|-(?!-))+/'
];
Run Code Online (Sandbox Code Playgroud)
但是只要我调用规则验证就会抛出错误,请参阅下面的内容:
preg_match(): No ending delimiter '/' found
Run Code Online (Sandbox Code Playgroud) 以下是项目名称的规则:
$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.
更新:它确实有效,我只是在错误的控制器中测试它,对不起......但也许它会帮助其他人
好吧,我有我称之为经度和纬度坐标的大量列表.那说我也有一些来源,我从这里拉出这些坐标.其中一些来自get/post方法,这可能会导致我的网站/服务中出现潜在的安全漏洞.所以我想弄清楚如何通过PHP验证经度和纬度.我正在通过preg_match思考一些正则表达式.但我可能是错的,也许有人想提出一个更简单的方法.我已经尝试了自己的概念,并尝试了各种互联网酿造概念,试图找到一个正则表达式模式,将通过preg_match为我验证这些(或者如果你有更好的建议,我会全部听到相似的情况).
在最后进入并来到这里之前,我最后一次失败的尝试是......
preg_match('^(\-?\d+(\.\d+)?),\s*(\-?\d+(\.\d+)?)$', $geoResults['latitude']))
Run Code Online (Sandbox Code Playgroud)
产生"preg_match()[function.preg-match]:找不到结束分隔符'^'"作为我的错误.我试过的最后几次尝试产生了这个错误,所以我不知道它是什么或意味着什么.