Неполный результат регулярного выражения для тайских символов в разных версиях PHP

Строка считается действительной, если содержит alphanumeric а также _ а также - а также Thai characters, иначе недействительно. Такие персонажи, как. или @ недействительны.

Основываясь на документации PHP, должно работать следующее регулярное выражение:

^[\w\-\p{Thai}]+$

Здесь даже кажется, что он работает так, как ожидалось: https://regex101.com/r/rfwjng/1

Однако не работает в моем PHP-коде и не работает здесь: https://www.phpliveregex.com/p/wDf

private function containsInvalidCharacters($value) {
    return !preg_match('/^[\w\-\p{Thai}]+$/', $value);
}

Обновление 1:

Чтобы уточнить, если я /uв конце он начинает сопоставление нежелательных символов на моем локальном компьютере. Хотя, похоже, это работает по указанной ссылке (как предлагается в комментарии.)

Обновление 2:

Проблема решена при использовании '/^[\wก-๙-]+$/u'. По какой-то причине\p{Thai}не давал согласованных результатов для разных версий PHP. Смотрите здесь: https://3v4l.org/4hB9e

0 ответов

Другие вопросы по тегам