Я получаю данные из текстового поля, где пользователь должен вводить имя по одному в каждой строке. После этого данные будут разделены на возврат каретки. Иногда пользователь может вводить пустые строки намеренно. Как я могу обнаружить эти строки и удалить их? Я использую PHP. Я не возражаю использовать регулярное выражение или что-то еще.
Неверные данные
Matthew Mark Luke John James
Исправить данные (удалите пустые строки)
Matthew Mark Luke John James
Использование регулярного выражения для устранения пустых строк до взрыва (хорошо работает для любого количества последовательных пустых строк, также см. Следующий фрагмент):
$text = preg_replace('/\n+/', "\n", trim($_POST['textarea']));
Разбиение с помощью регулярного выражения:
$lines = preg_split('/\n+/', trim($_POST['textarea'])); $text = implode("\n", $lines);
Разделение без регулярного выражения:
$lines = array_filter(explode("\n", trim($_POST['textarea']))); $text = implode("\n", $lines);
Просто чувствуя себя творческим сегодня, выбирайте свой яд 🙂
Полагаю, что простая замена строки должна сделать трюк.
str_replace("\r\n\r\n", "\r\n", $text);
После разделения вашего ввода зацикливайте массив на поиск пустых строк:
$lines = explode("\n", $_POST['your_textarea']); foreach ($lines as $k=>$v) if(empty($v)) unset($lines[$k]);
Вы даже можете искать строки, содержащие пробелы, чтобы также удалить их:
$lines = explode("\n", $_POST['your_textarea']); foreach ($lines as $k=>$v) if(empty(trim($v))) unset($lines[$k]);
(Оба фрагмента кода не тестируются)
ПРИМЕЧАНИЕ. Будьте осторожны при разбиении на разрывы строк (я разделил их на \ n, но мог бы быть \ r \ n, если клиентский браузер работает в Windows).