Есть ли простое регулярное выражение, которое поймает всех неанглийских символов? Это должно было бы разрешить общую пункцию и символы, но никаких специальных символов, таких как русский, японский и т. Д.
Ищете что-то для работы на PHP.
Поскольку в вашем комментарии, ссылаясь на адреса, они могут содержать цифры. Так:
preg_replace('/[^[:alpha:][:punct:][:digit:]]/u', utf8_encode($input), '');
Следует заменить ваши нежелательные символы. Класс [:alpha:]
будет работать, только если ваш язык настроен правильно. Если, например, он установлен в de_DE
, de_DE
не только «а» через «z», но и «экзотики», такие как «ä», «ö», «è» и т. П.
Кроме того, поскольку вы не хотите «русский, японский и т. Д.», Обратите внимание на модификатор u
. Вход должен быть закодирован в кодировке UTF-8, чтобы не сломать его и дать неверные результаты.
Например, этот [^ A-Za-z0-9 \, \. \ -]?
Кажется, что этот q / a справился с этим: PHP. Проверка символов строки – это символы символов в Великобритании или США.
используйте шестнадцатеричные коды , например, это очищает все символы не-ascii, а также окончания строк и заменяет их пробелами. space ( \x20
) намеренно выведен из диапазона, так что последовательные пробеги пробелов и / или специальных символов заменяются одним пробелом.
$clean = trim(preg_replace('/[^\x21-\x7E]+/', ' ', $input));
if (strlen($str) == strlen(utf8_decode($str))) { }