正在验证Laravel验证正则表达式规则-preg_match()中的纬度/经度:未找到结尾分隔符“/”[重复]

这个问题在这里已经有了答案
Laravel preg_match():无结束分隔符&#39/' 建立

(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

在第二个示例中,第一个^被解释为开始正则表达式字符串的字符,因此它希望最后一个^与之匹配

发表评论