preg_replace проблема с регулярным выражением - PullRequest
3 голосов
/ 12 февраля 2011

Я пытаюсь очистить строку.

Мне нужно разрешить только

  1. Прописные / строчные буквы
  2. цифры
  3. пробелы, табуляция, возврат каретки
  4. эти символы: _-+*()[]!#?.,;:'"<>

Все остальное должно пройти пока.Как мне это сделать?У меня есть это, которое работает для прописных / строчных букв, цифр и пробелов.Но я не знаю, как учитывать вкладки, возврат каретки или как делать специальные символы?

$str = preg_replace('/[^a-z0-9 ]/i', '', $str);

Ответы [ 3 ]

3 голосов
/ 12 февраля 2011

Попробуйте

$str = preg_replace('/[^\w\r\n\t+*()[\]!#?.\,;:\'"<> -]/', '', $str);
2 голосов
/ 12 февраля 2011

\ s - символ пробела (включает символы табуляции и переносы строк)
\ r - возврат каретки
Используйте символ "\" для специальных символов.

1 голос
/ 12 февраля 2011

$str = 'sample|';<br /> $result = !(bool)strlen(preg_replace('/^[a-z0-9A-Z\r\s:_-+*()[]!#?.,;:\>\<]*/', '', $str)) </p> <p>

...