将 PHP 中的波兰语字符与 preg_match 匹配

Match Polish characters in PHP with preg_match

我正在尝试在 PHP 中进行一些服务器端验证。我很努力,但我仍然没有找到解决办法。我试图在输入中只允许使用波兰语字符。

为此我使用了:

preg_match('/^[\x{0104}-\x{017c}]*$/u',$titles)

然而这不起作用。

有人知道如何正确编写吗?

只匹配波兰语字母,只需要一个字符class:

[a-pr-uwy-zA-PR-UWY-ZąćęłńóśźżĄĆĘŁŃÓŚŹŻ]

用作

preg_match('/^[A-PR-UWY-ZĄĆĘŁŃÓŚŹŻ]*$/iu',$titles)

注意在Polish中没有QVX,但是由于在某些词中可以遇到(taxi) ,您可能也希望允许这些字母。然后,使用 '/^[A-ZĄĆĘŁŃÓŚŹŻ]*$/iu' 正则表达式。

IDEONE demo

if (preg_match('/^[A-PR-UWY-ZĄĆĘŁŃÓŚŹŻ]*$/iu', "spółka")) {
    echo "The whole string contains only Polish letters";
}