Php 如何在验证中允许使用非字母字符

Php 如何在验证中允许使用非字母字符,php,cakephp,Php,Cakephp,我如何允许使用非字母字符,例如,':;“在我的cakephp项目中使用正则表达式 我的代码: 谢谢。您的规则已经允许使用某些非字母字符。它允许使用空格字符(空格字符)、连字符(破折号字符)和撇号(单引号字符)。您只需添加到列表中: 'alpha' => array( 'rule' => '/^[a-z\s\-\'\.,:;]+$/i', 'message' => 'Please limit to alphabetical and non-alphabetical

我如何允许使用非字母字符,例如,':;“在我的cakephp项目中使用正则表达式 我的代码:


谢谢。

您的规则已经允许使用某些非字母字符。它允许使用空格字符(空格字符)、连字符(破折号字符)和撇号(单引号字符)。您只需添加到列表中:

'alpha' => array(
    'rule' => '/^[a-z\s\-\'\.,:;]+$/i',
    'message' => 'Please limit to alphabetical and non-alphabetical characters.'
);
不要忘记转义具有特殊含义的字符,例如句点字符

请注意,此规则非常宽松。它将允许各种非常规输入,例如-

  • ;;;;
  • -->;:
  • “..”

您是否尝试过将它们包含在字符类中(即规则的方括号之间)?您已经在该正则表达式中匹配了非单词字符。除了
a-z
之外,您还允许空格、破折号字符
-
和单引号字符
。您的消息也没有太多意义
“限制为字母和非字母顺序“
…如何允许所有空间字符@LixI需要允许此?{}[]!@$%^&*人物@Lix@sha-你所要做的就是将它们添加到正则表达式中,就像我添加其他字符一样。。。别忘了避开那些对正则表达式有特殊意义的<代码>?[]$^*都有特殊的含义,因此您必须在它们之前添加一个斜杠,以转义字符,告诉正则表达式引擎搜索确切的字符,而不是它的替代含义。例如,
$
符号实际上表示字符串的结尾。。。但是如果您正在搜索美元字符本身,则必须编写
\$
。还要注意的是,您的问题现在与原来的问题有了很大的变化。也许你应该用你需要的所有细节更新你原来的帖子。。。。
'alpha' => array(
    'rule' => '/^[a-z\s\-\'\.,:;]+$/i',
    'message' => 'Please limit to alphabetical and non-alphabetical characters.'
);