PHP регулярное выражение для принятия японского и английского языков без специальных символов - PullRequest
0 голосов
/ 01 июня 2018

Я пытаюсь создать регулярное выражение для фильтрации только алфавитов или цифр из английского и японского языков.Это то, что я пробовал,

preg_match('/[\p{L}\p{N}\p{Katakana}\p{Hiragana}\p{Han}]+/u', $value)

Но я не получаю желаемого результата.Что я могу делать не так?этот также я попробовал

preg_match('/[\p{Cn}\p{N}]+/u', $value)

также, мне нужно запретить специальные символы

('/[(a-zA-Z 0-9\_\{\}\!\$\%\&\.\|\?\*\+\(\)\-\~)(\p{Cn})]/', $value)) 

этот не будет работать вместе

1 Ответ

0 голосов
/ 01 июня 2018

Попробуйте с этим регулярным выражением: оно будет соответствовать буквам (верхний и нижний регистр), числам и символам Юникода из katakana, hiragana и han подмножество

preg_match('/^[a-zA-Z0-9\p{Katakana}\p{Hiragana}\p{Han} $]+/u', $value)

Редактировать : добавлено space в список разрешенных символов и $ и ^ для соответствия всей строке.

  • STORE-11 ぼ <>?>>^^ † ‡ dd NN вернет 0 (без совпадения)
  • ぼ abc 12 вернет 1 (соответствует)

демо регулярного выражения с приведенными примерами: https://www.phpliveregex.com/p/oef

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...