这个问题在这里已经有了答案:
Laravel preg_match():无结束分隔符'/' 建立
(1个答案)
(1个答案)
四年前关闭的
我正在尝试使用自定义正则表达式规则验证Laravel 5.4项目中的纬度/经度(基于此答案:https://stackoverflow.com/a/22007205/2332336)
//创建验证
$validator=validator::make($request->;all()[
// ...
“lat”=>;“必需的正则表达式:/^[-]([0-8]?[0-9])\。(\d+)(90(\.0+)?$/”,
“long”=>;“required | regex:/^[-]?((((1[0-7][0-9]))|([0-9]?[0-9]))\(\d+)| 180(\.0+)$/”
], [
“lat.regex”=>;“纬度值的格式似乎不正确。”,
“long.regex”=>;“经度值的格式似乎不正确。”
]);
//测试验证
如果($validator->;失败()){
返回重定向()
->;back()
->;威瑟罗($validator)
->;withInput();
}
运行此操作时,我会收到以下错误:
preg_match():未找到结尾分隔符“/”
我也试过这个
'lat'=>;'必需的|正则表达式:^[-]([0-8]?[0-9])\.(\d+)|(90(\.0+))$,
“长”=>;'必需的|正则表达式:^[-]?(((1[0-7][0-9])|([0-9]?[0-9])\。(\d+)| 180(\.0+)$'
现在我得到了这个错误:
preg_match():未找到结尾分隔符“^”
通过自定义正则表达式规则验证laravel中lat/lng的正确语法是什么
管道是否可能是问题所在?例如,请参见Laravel 5.4-使用正则表达式进行验证。我看到您的regexp中有一个管道字符。尝试将规则分离到数组中,而不是在此处使用管道:required | regex
在第二个示例中,第一个^
被解释为开始正则表达式字符串的字符,因此它希望最后一个^
与之匹配