2017-02-21 2 views
0

У меня есть функция, где я захватываю .text() таблицы в javascript. Я выделяю HTML-теги, но когда я пишу его в текстовый файл, я оставляю один большой кадр.Создание новой строки при записи в текстовый файл с javascript или jquery

function removeHtml(html) { 
      var result; 
      var rm = new RegExp("</td>", "g"); 
      result = html.replace(rm, "\n"); 
      result = $(result).find("td").text(); 
      alert(result); 
      return result; 
     } 

Я рассмотрел Расщепление это в массив и перекручивание над ним, но я чувствую, что будет работать с этой проблемой снова:

Как создать новую строку при написании этого результата в текстовый файл ? Добавление \ n не добавляет новую строку в файл .txt, а просто делает ее приятной в предупреждении (результате), которое находится в моей функции.

EDIT: Мне сказали, что \ n в моей замене необходимо быть внутри кавычек. Я сделал это и добавил предупреждение для проверки результатов. У предупреждения есть все новые строки в нем, но текстовый файл по-прежнему остается одной длинной строкой. \ N больше не отображается в файле.

+0

Показать код, вы используете для удаления тегов! –

+1

Возможно, было бы намного менее беспорядочно ходить по DOM и выводить текст постепенно, применяя при необходимости форматирование, чем к RegExp, взломать его. – tadman

+1

Второй аргумент ['replace()'] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace) - это строка или функция. –

ответ

0

Вы можете просто заменить RegExp с "\n" или '\n':

function removeHtml(html) { 
    var result; 
    var rm = new RegExp("</td>", "g"); 
    result = html.replace(rm, "\n"); 
    result = $(result).text(); 
    return result; 
} 
+0

Я попробовал это и добавил предупреждение, прежде чем возвращать результаты. Предупреждение отлично выглядит, но один раз в файле это не новая строка –

+0

Итак, как вы храните эту строку в файле? И какую ОС вы используете? Поддерживает ли он '', '' или ''? –

+0

Я использую это: http://jsfiddle.net/TzVd3/918/ –

0

Просто цикл через каждый тр и аккумулировать результат:

var text = ""; // the accumulator 
 

 
$("tr").each(function() { 
 
    text += $(this).text() + "\n"; // for each tr add the text followed by new line 
 
}); 
 

 
console.log(text);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<table> 
 
    <tr><td>ABC: </td><td>mmm</td></tr> 
 
    <tr><td>Lorem: </td><td>Epsom</td></tr> 
 
    <tr><td>LOL</td><td>MOL</td></tr> 
 
</table>

+0

Это захватывало каждый тег со страницы, все еще не вставляя новые строки –

Смежные вопросы