代码之家  ›  专栏  ›  技术社区  ›  Thinker

正则表达式字符过滤器

  •  0
  • Thinker  · 技术社区  · 15 年前

    preg_match("/^[\p{L} 0-9\-]{4,25}$/", $login))
    

    那是什么意思 p{L} 什么意思?我知道它是干什么的——包括所有带有国家字母的字符。

    我的第二个问题是,我想清理ingame聊天的用户输入,所以我从上面提到的regexp开始,但我想允许大多数特殊字符。最短的方法是什么?有人已经准备了一个regexp来做这件事吗?

    3 回复  |  直到 15 年前
        1
  •  1
  •   Julien Roncaglia    15 年前

    Unicode character properties 基本上,它要求字符位于特定的字符类(字母、数字等)中。

    对于您的过滤器,这取决于您想要过滤的内容,但我认为查看Unicode字符类是一个好方法(单独添加任何对您有用的字符)。

        2
  •  0
  •   Roberto Aloi    15 年前

    每个字符串的长度在4到25之间,以字母、空格、数字或破折号开头。

    要了解regexp的工作原理,请执行以下操作:

    http://en.wikipedia.org/wiki/Regular_expression

    http://www.php.net/manual/en/regexp.reference.unicode.php

        3
  •  0
  •   Tim    15 年前

    如果要包含大多数字符,为什么不排除不允许的字符?

    您可以使用角色类中的^

    [^characters I don't want]