Yii2形式的验证模式仅允许字母,空格和某些符号

时间:2017-09-27 13:19:38

标签: regex validation yii2 pattern-matching preg-match

  
    

首先,我已阅读并遵循许多问题/文章的建议。这issue是最接近的。{3}}。但它没有解决我的问题。

  

我的表单中有一个Job Position的文本字段,我需要添加如下验证:

  1. 拒绝数字和符号exc:-,.
  2. 允许使用字母和空格
  3. 我在modal.php

    中添加了这样的内容
     'pattern' => '/^([a-z]+-)*[a-z]+$/i'
    

    但它拒绝了空格,,.

    这是上面链接的模式:

    'pattern' => '/^[a-zA-Z-,]+(\s{0,1}[a-zA-Z-, ])*$/'
    

    但不允许.

    也许任何人都可以帮我修复上面的模式,我希望也可以稍微了解一下模式。

    由于

2 个答案:

答案 0 :(得分:1)

如果您需要确保非空格字符仅出现在字符串的开头/结尾,请使用

'/^[a-zA-Z.,-]+(?:\s[a-zA-Z.,-]+)*$/'

请参阅regex demo

<强>详情

  • ^ - 字符串开头
  • [a-zA-Z.,-]+ - 一个或多个ASCII字母,.,-
  • (?:\s[a-zA-Z.,-]+)* - 零次或多次出现
    • \s - 空白
    • [a-zA-Z.,-]+ - 一个或多个ASCII字母,.,-
  • $ - 字符串结尾(或\z以匹配字符串的最后一部分)

如果您不想限制字符串开头和结尾的字符,请使用

'/^[a-z,.\s-]+$/i'

<强>详情

  • ^ - 字符串开头
  • [a-z,.\s-]+ - 一个或多个ASCII字母,.,-或空白字符
  • $ - 字符串结尾(或\z以匹配字符串的最后一部分)

请参阅this regex demo

答案 1 :(得分:-1)

试试这个:

 ['position','match', 'pattern' => '[a-zA-Z][a-zA-Z., ]+$/;', 'message' => 'Job Position can only contain Alphabet and Spaces only'],