在我的代码中,我使用的是一个regexp我在某处搜索,但我不明白。 :)
preg_match("/^[\p{L} 0-9\-]{4,25}$/", $login))
p{L}
是什么意思?我知道它的作用 - 所有带有国家字母的人物都包括在内。
我的第二个问题,我想清理用户输入的游戏聊天,所以我从上面提到的正则表达式开始,但我想允许大多数特殊字符。最简单的方法是什么?有人已经准备好了正则表达式吗?
答案 0 :(得分:1)
对于\ p,请参阅Unicode character properties,基本上它要求角色属于特定的角色类(字母,数字......)。
对于你的过滤器,它取决于你想要过滤的内容,但是看看Unicode字符类是我认为的好方法(单独添加任何对你有用的字符)。
答案 1 :(得分:0)
正则表达式意味着:
每个长度在4到25之间的字符串,以字母,空格,数字或短划线开头。
\ p {L}表示字面意思:与“L”属性匹配的字符,其中“L”代表“任何字母”。
了解正则表达式的工作原理:
答案 2 :(得分:0)
如果您想要包含大多数字符,为什么不排除那些您不允许的字符呢?
您可以使用角色类中的^
来执行此操作[^characters I don't want]
免责声明:黑名单可能不是最佳方法,具体取决于您尝试做什么,并且必须比白名单更彻底。