Исправлена ​​ошибка, связанная с выходом из Unicode без лидирующего sla sh in PHP - PullRequest
0 голосов
/ 11 января 2020

У меня есть строка JSON из вызова ajax, которая содержит специальный символ. Проблема в том, что есть функция, которая удаляет все косые черты из строки (которую я должен использовать, к сожалению). Но он разбивает любой символ Unicode в нем ...

Так что у меня есть такая строка:

mmu00b2

, которая должна быть преобразована в UTF- 8:

mm²

Я попробовал это регулярное выражение здесь, но безуспешно: preg_replace("/u(\w+)/i", "\x$1", $str );

1 Ответ

2 голосов
/ 11 января 2020

'/ u (\ w +) / i' будет соответствовать 'u00b2', поскольку \ w + совпадает с любыми символами слова, включая подчеркивания.

Вы должны использовать '\ d +' вместо того, чтобы сопоставлять только цифры. Это даст вам совпадение «u00» и разрывы от «b», поэтому вам не нужно больше добавлять $ 1 при замене.

preg_replace("/u(\d+)/i", "\x", 'mmu00b2')

вывод: мм / xb2

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