Как проверить, содержит ли элемент массива только новую строку?

StackOverflow https://stackoverflow.com/questions/933476

  •  06-09-2019
  •  | 
  •  

Вопрос

Простой текстовый файл, состоящий из абзацев и нескольких пустых строк, загружается в массив через Ajax.Массив разбивается на элементы новыми строками, например:

var infoArray = new Array();
infoArray = response.split("\n");

Затем массив подвергается циклу for с различными проверками ключевых слов в различных элементах, которые указывают на то, что следующие n элементов обрабатываются определенным образом.В основном выводятся элементы, такие как

    strMsg += '<li>' + infoArray[i] + '</li>';

Проблема в том, что пустые строки из текстового файла также сохраняются в элементы массива.Затем выводится пустой элемент списка, который явно ошибочен.

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

Некоторые из вещей, которые я пробовал:

    if (!(infoArray[i].substring(0,0) == '')) { /* process output */ }
    if (!(infoArray[i].substring(0,1) == '\n')) { /* process output */ }
    if (!(infoArray[i].substring(0,0) == '\n')) { /* process output */ }
    if (!(infoArray[i].substring(0,1) == /\n/)) { /* process output */ }
    if (!(infoArray[i].substring(0,1) == /\n/)) { /* process output */ }
    if (!(infoArray[i].substring(0,1) == /\n|\s*\n/)) { /* process output */ }
    if (!(infoArray[i].IsEmpty())) { /* process output */ }

    var tempString = infoArray[i].toString();
    if (!(tempString.IsEmpty())) { /* process output */ }
    if (tempString.length != 0) { /* process output */ }

Идеи?

Редактировать:о да, я также попробовал выполнить «кодирование» и «декодирование» перед проверкой « », просто чтобы выявить это.

Нет правильного решения

Другие советы

Попробуйте обрезать строку с помощью RegEx.Я думаю, что этот популярный (взято из первое попадание в гугл):

if (!(infoArray[i].replace(/^\s+|\s+$/g, '') == ''))

WebKit публикует еще один набор функций обрезки вы могли бы использовать.

Я бы предложил просто обрезать элемент массива.Например, вы можете использовать jQuery:

if (infoArray[i] = $.trim(infoArray[i])) {
    strMsg += '<li>' + infoArray[i] + '</li>';
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top