Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex Yii2形式的验证模式,仅允许字母、空格和某些符号_Regex_Validation_Yii2_Pattern Matching_Preg Match - Fatal编程技术网

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

Regex Yii2形式的验证模式,仅允许字母、空格和某些符号,regex,validation,yii2,pattern-matching,preg-match,Regex,Validation,Yii2,Pattern Matching,Preg Match,首先,我已经阅读并遵循了许多问题/文章中的建议。这是最接近的一个。但这并没有解决我的问题 我的表单中有一个Job Position的文本字段,我需要添加如下验证: 拒绝数字和符号exc:-、、和 允许字母和空格 我在modal.php中添加了类似的内容 'pattern' => '/^([a-z]+-)*[a-z]+$/i' 但它拒绝了空间、、和 这是上面链接中的模式: 'pattern' => '/^[a-zA-Z-,]+(\s{0,1}[a-zA-Z-, ])*$/' 但它

首先,我已经阅读并遵循了许多问题/文章中的建议。这是最接近的一个。但这并没有解决我的问题

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

  • 拒绝数字和符号exc:
    -
  • 允许字母和空格
  • 我在modal.php中添加了类似的内容

     'pattern' => '/^([a-z]+-)*[a-z]+$/i'
    
    但它拒绝了空间、

    这是上面链接中的模式:

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

    也许任何人都可以帮我修复上面的模式,我也希望能给一些关于模式的了解

    谢谢

    试试这个:

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

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

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

    详细信息

    • ^
      -字符串的开头
    • [a-zA-Z.,-]+
      -1个或多个ASCII字母,
      -
    • (?:\s[a-zA-Z,-]+)*
      -零次或多次出现
      • \s
        -空白
      • [a-zA-Z.,-]+
        -1个或多个ASCII字母,
        -
    • $
      -字符串末尾(或
      \z
      匹配字符串的最末尾)
    如果不想限制字符串开头和结尾的字符,只需使用

    '/^[a-z,.\s-]+$/i'
    
    详细信息

    • ^
      -字符串的开头
    • [a-z,.\s-]+
      -1个或多个ASCII字母、
      -
      或空格字符
    • $
      -字符串末尾(或
      \z
      匹配字符串的最末尾)

    请参阅。

    是否要限制字符串开头和结尾的字符?或者像字符串只有空格这样的情况?还是所有的
    -
    s?如果没有,只需使用
    '/^[a-z,.\s-]+$/i'
    。或者您是否需要确保非空白字符仅出现在字符串的开头/结尾?请尝试
    '/^[a-zA-Z,-]+(?:\s[a-zA-Z,-])*$/'
    我需要确保开头和结尾中没有空格和字符。我想问你一件事,如果你不介意的话:)是的,在我的答案下面写一条评论。我的问题已经被你下面的答案回答了:D