Поскольку в ваш комментарий со ссылкой на ваш адрес, они могут содержать цифры тоже. Итак:
preg_replace('/[^[:alpha:][:punct:][:digit:]]/u', utf8_encode($input), '');
Следует заменить ваши нежелательные символы. Класс [:alpha:]
будет работать, только если ваш язык настроен правильно. Если, например, оно установлено в de_DE
, то не только «а» через «z» считаются символами, но также «экзотикой», например «ä», «ö», «è» и т. П.
Кроме того, поскольку вы не хотите «русский, японский и т. Д.», Обратите внимание на модификатор u
. Вход должен быть закодирован в кодировке UTF-8, чтобы не сломать его и дать неверные результаты.
Почему ты хотел ограничиться английскими символами, но чтобы все punctuation‽ Вы действительно хочет ограничить ввод в ASCII символов? –
Возможно, связано с http://stackoverflow.com/questions/4619603/php-validate-string-characters-are-uk-or-us-keyboard-characters/4619747 –
@Anon - имена и адреса обычно включают апострофы, запятые, периоды и т. д. Хотите нормализовать данные, чтобы все было на английском языке. –