Zend - Regex允许使用空格和unicode字符

时间:2011-12-15 16:33:49

标签: php regex zend-framework validation

我有一个正则表达式的问题,允许我输入一个名称,如果一个机构可以包含其他语言的特殊字符,空格和 - 字符。 我知道我创造的表达方式:

/^[a-zA-Z- "\']*$/

将允许字符从a到z和 - '“字符和空格。但是当我键入żźćąś或其他语言时,特殊字符串无效,但我希望它有效。

我创建的第二个表达:

/^[^\~\\!\\@\\#\\$\\%\\^\\&\\*\\(\\)\\`\\1\\2\\3\\4\\5\\6\\7\\8\\9\\0\\_\\+\\=\\{\\}\\:\\"\\;\\\\\<\\>\\?\\,\\.\\/\ ]*$/

允许上面没有字符的a-z字符。但我不允许上面的正则表达式中的空白区域,但是当我输入类似于空格的东西时,例如:

"Bielsko Biała"

它无效,但当我一起输入时:

"BielskoBiała"

它与±字符有效。所以我想允许像żźćąśł这样的特殊字符和其他语言的其他字符,但也想允许白色空格,我不知道怎么做。

当我使用Alpha验证器时,它还可以,但不允许放置 - '“字符,我也想允许。

1 个答案:

答案 0 :(得分:2)

首先,您必须使用u开关启用UTF-8支持。然后,您可以将unicode字母与序列\pL匹配。请参阅here

所以你的解决方案就是

/^[\pL- "\']*$/u