как удалить все символы, кроме буквенно-цифровых, подчеркивания и тире?
Я не эксперт по регулярному выражению:( Я стараюсь, чтобы вырезать все символы из строки кроме числа + буквы и символ подчеркивания и тире. Это правильный синтаксис?:
preg_replace("/[^a-z0-9_-]+/i", "", $string);
3 ответов
да, но его можно немного оптимизировать:
preg_replace('/[^\w-]/', '', $string);
\w
соответствует буквенно-цифровым символам и символам подчеркивания. Это имеет дополнительное преимущество, позволяя акцентированные символы, если ваш язык позволяет.
то, что у вас есть, похоже, будет работать. Вы можете добавить пробелы, так как они не являются буквенно-цифровым символом:
preg_replace("/[^a-z0-9_-\s]+/i", "", $string);