Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Zend-Regex允许使用空格和unicode字符_Php_Regex_Zend Framework_Validation - Fatal编程技术网

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

Php Zend-Regex允许使用空格和unicode字符,php,regex,zend-framework,validation,Php,Regex,Zend Framework,Validation,我有一个正则表达式的问题,它允许我输入一个名称,比如说,如果一个机构可以包含其他语言的特殊字符,空格和-char。 我知道我创造的表达: /^[a-zA-Z- "\']*$/ /^[^\~\\!\\@\\#\\$\\%\\^\\&\\*\\(\\)\\`\\1\\2\\3\\4\\5\\6\\7\\8\\9\\0\\_\\+\\=\\{\\}\\:\\"\\;\\\\\<\\>\\?\\,\\.\\/\ ]*$/ 将允许从a到z的字符和“-”字符以及空格。但当我键入żźć

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

/^[a-zA-Z- "\']*$/
/^[^\~\\!\\@\\#\\$\\%\\^\\&\\*\\(\\)\\`\\1\\2\\3\\4\\5\\6\\7\\8\\9\\0\\_\\+\\=\\{\\}\\:\\"\\;\\\\\<\\>\\?\\,\\.\\/\ ]*$/
将允许从a到z的字符和“-”字符以及空格。但当我键入żźćąś或其他语言时,特殊字符字符串无效,但我希望它有效

我创建的第二个表达式:

/^[a-zA-Z- "\']*$/
/^[^\~\\!\\@\\#\\$\\%\\^\\&\\*\\(\\)\\`\\1\\2\\3\\4\\5\\6\\7\\8\\9\\0\\_\\+\\=\\{\\}\\:\\"\\;\\\\\<\\>\\?\\,\\.\\/\ ]*$/
/^[^\\~\!\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*$/
允许使用a-z字符,但不允许使用上述字符。但我不允许在上面的正则表达式中使用空格,但当我键入带有空格的内容时,例如:

“别尔斯科·比亚尼亚”

无效,但当我一起键入时:

“BielskoBiała”

它以ą字符有效。所以我想允许像żźćąśł和其他语言的特殊字符,但也喜欢允许空白,我不知道如何做


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

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

所以你的解决方案是

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

如果我错了,请告诉我。pl表示波兰语特殊字符是吗?所以我必须添加其他语言的快捷方式,以允许其他语言使用特殊字符?
L
表示所有字母:)好的,它应该工作;)现在我明白了;)谢谢。问题解决您可以通过
\p{Language}选择语言
。上面的链接中提供了语言列表。