【问题标题】:Don't allow whitespace for regex in laravel不允许在 laravel 中使用正则表达式的空格
【发布时间】:2015-11-19 10:59:34
【问题描述】:

如何修改这个正则表达式使其不接受空格。

return [
               'file' => 'image|mimes:jpg,jpeg,png|max:1500',
               'name' => 'required',
             'tel_no' => 'regex:/^[-0-9\+\s]+$/',
            'address' => 'required',
        ];

【问题讨论】:

  • @Calimero 我已经删除了它,但不知何故它仍然接受空格
  • @Calimero 我会添加另一个括号还是某种括号?
  • no @Calimero ^ 表示“行首”,$ 表示“行尾”
  • 你可以试试这个:'regex:/^[-0-9\+^\s]+$/' (你是对的@tino.codes,我又错了,谢谢为了澄清)
  • @Calimero 它仍然不起作用:(我必须提供两个正则表达式吗?

标签: php laravel laravel-5


【解决方案1】:
'tel_no' => 'required|regex:/^\+?\d+(-\d+)*?$/'

【讨论】:

  • 还是一样,当我输入“1”或“1”或“255 555”时,它不会接受,但如果我输入一个空格并按保存,它会接受它。
  • 我想捕获一个用户只输入一个空格并且只接受数字、破折号和加号的输入。它用于我的联系号码文本框。
  • @arthlimchiu :此正则表达式要求它不能为空,以数字开头和结尾,数字之间允许空格和破折号,或单个空格。
  • @arthlimchiu 你正在混合你想要的和实际发生的。你能列出你想接受的条目吗?
  • 我想要的是 0-9 位数字、+ 符号和破折号。我不想要的是带有空格、字母和只有空格的输入的数字
【解决方案2】:

删除\s

return [
               'file' => 'image|mimes:jpg,jpeg,png|max:1500',
               'name' => 'required',
             'tel_no' => 'required|regex:/^[-0-9\+]+$/',
            'address' => 'required',
        ];

【讨论】:

  • 我已经删除了它,但不知何故它仍然接受空格。
  • 如果我输入带有空格的数字,则验证有效,但如果我只输入空格,它将接受它。
  • 就像 Amarnasan 提到的,你必须添加一个 required 验证
猜你喜欢
  • 2016-10-08
  • 1970-01-01
  • 2012-10-09
  • 2012-07-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多