Yii2格式的验证模式只允许使用字母,空格和一些符号

Yii2格式的验证模式只允许使用字母,空格和一些符号

问题描述:

首先,我已阅读和阅读来自多个问题/文章的建议。而这个issue是最接近的一个。但它并没有解决我的问题。Yii2格式的验证模式只允许使用字母,空格和一些符号

我已经为工作职位中的文本字段我的形式,我需要添加验证这样的:

  1. 拒绝数字和符号EXC:-,,并且.
  2. 允许字母和空间

我在modal.php

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

但它否认空间,,,并且.

,这是从一个链接上面的图案:

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

但它并不允许.

也许任何人都可以帮助我修复上面的模式,我也希望能对模式有所了解。

感谢

+0

你想限制在字符串的开始和结束的字符?或者像字符串只有空白那样的情况?或者所有的' - '?如果不是,只需使用''/^[a-z,。\ s - ] + $/i''。 –

+0

或者您是否需要确保非空白字符只出现在字符串的开始/结尾处?尝试''/^[a-zA-Z。, - ] +(?:\ s [a-zA-Z。, - ])* $ /'' –

+0

我需要确保非空白字符并结束。而你的模式都是工作,谢谢你somuch :) 我想问你一些事情,如果它不打扰你:) – Blackjack

如果你需要确保非空白字符只出现在开始/结束的字符串,使用

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

regex demo

详细

  • ^ - 字符串的开始
  • [a-zA-Z.,-]+ - 1个或多个ASCII字母,.,-
  • (?:\s[a-zA-Z.,-]+)* - 零次或多个出现
    • \s - 哇hitespace
    • [a-zA-Z.,-]+ - 1个或多个ASCII字母,.,-
  • $ - 字符串的结尾(或\z字符串的末尾匹配)

如果你不这样做想要限制字符串的开头和结尾的字符,只需使用

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

详细

  • ^ - 字符串的开始
  • [a-z,.\s-]+ - 1个或多个ASCII字母,.,-或空格字符
  • $ - 字符串(或\z年底到最后匹配的字符串)

查看this regex demo

+1

这是工作。 Thankyou somuch:D – Blackjack

试试这个:

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

我试过了,这只允许使用字母表。 – Blackjack