Неполный результат регулярного выражения для тайских символов в разных версиях 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