【问题标题】:Match Polish characters in PHP with preg_match用 preg_match 匹配 PHP 中的波兰语字符
【发布时间】:2015-12-14 19:10:07
【问题描述】:

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

为此我使用过:

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

但这不起作用。

有人知道怎么写吗?

【问题讨论】:

  • 请你提供一个你正在测试的字符串的例子吗?
  • 任何波兰字母,如 Ąąćś 等

标签: php regex unicode preg-match


【解决方案1】:

要仅匹配波兰字母,您只需要一个字符类:

[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";
}

【讨论】:

  • 我试过 preg_match('/^[A-PR-UWY-ZĄĆĘŁŃÓŚŹŻ]*$/iu',$titles) 当我用 Ą 字母尝试它时它返回 false。如果你写的东西真的有效,你试过了吗?
  • 没有冒犯。我在 $titles 上做了 htmlentities。这就是问题所在。现在工作。谢谢。
猜你喜欢
  • 2013-10-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-09
相关资源
最近更新 更多