相关疑难解决方法(0)

Laravel模式验证管道字符问题

使用Laravel框架我需要根据一组有效值检查提交字段的值.

问题是Laravel使用了| 用于分隔属于字段的验证规则的字符.

这并不能正常工作,它抛出一个"的preg_match:没有结束符'/’发现":

'my_field' => 'match:/^(value1|value2|different value|yet another)$/'
Run Code Online (Sandbox Code Playgroud)

|如果\角色没有帮助,在这种情况下如何逃脱角色呢?

regex validation laravel

26
推荐指数
1
解决办法
9324
查看次数

Laravel Rules&Regex(OR)运算符问题

我的Laravel规则和正则表达式操作有一个小问题:

基本上规则就是这样一个数组:

'room'=>'required|alpha_num|min:2|max:10',
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是使用正则表达式和| (或)运营商,例如:

'cid'=>'required|regex:/^((comp)|(soen)|(engr)|(elec))\d{3}$/i',
Run Code Online (Sandbox Code Playgroud)

我收到服务器错误说:

ErrorException

preg_match(): No ending delimiter '/' found
Run Code Online (Sandbox Code Playgroud)

我猜这preg_match是在第一个|内部停止/.../.

反正有没有写上面的代码使它工作?

完整代码:

public static $rules = array(

'cid' => array('required', 'regex:/^((comp)|(soen)|(engr)|(elec))\d{3}$/i'),

'description'=>'required|regex:/^[A-Za-z \t]*$/i|min:3|unique:courses',

'credits'=>'required|regex:/^\d+(\.\d)?$/'

);
Run Code Online (Sandbox Code Playgroud)

php regex laravel

15
推荐指数
2
解决办法
2万
查看次数

在Laravel验证正则表达式规则中验证纬度/经度 - preg_match():找不到结束分隔符'/'

我正在尝试使用自定义正则表达式规则验证Laravel 5.4项目中的纬度/经度(基于此答案:https://stackoverflow.com/a/22007205/2332336 )

// Create validation
$validator = Validator::make($request->all(), [
    // ...
    'lat' => 'required|regex:/^[-]?(([0-8]?[0-9])\.(\d+))|(90(\.0+)?)$/',
    'long' => 'required|regex:/^[-]?((((1[0-7][0-9])|([0-9]?[0-9]))\.(\d+))|180(\.0+)?)$/'
], [
    'lat.regex' => 'Latitude value appears to be incorrect format.',
    'long.regex' => 'Longitude value appears to be incorrect format.'
]);

// Test validation
if ($validator->fails()) {
    return redirect()
        ->back()
        ->withErrors($validator)
        ->withInput();
}
Run Code Online (Sandbox Code Playgroud)

运行时,我收到以下错误:

preg_match():找不到结束分隔符'/'

我也尝试过这个;

    'lat' => 'required|regex:^[-]?(([0-8]?[0-9])\.(\d+))|(90(\.0+)?)$',
    'long' => 'required|regex:^[-]?((((1[0-7][0-9])|([0-9]?[0-9]))\.(\d+))|180(\.0+)?)$'
Run Code Online (Sandbox Code Playgroud)

现在我收到这个错误:

preg_match():找不到结束分隔符'^'

通过自定义正则表达式规则验证laravel中lat/lng的正确语法是什么?

php regex latitude-longitude laravel laravel-validation

4
推荐指数
1
解决办法
5166
查看次数