Новая строка \ n проблема в JS - PullRequest
3 голосов
/ 02 февраля 2011

Я читаю файл с xmlHttp объектом и разделяю responseText символами новой строки методом split.

Но символ "\ n" буквально не работает. Это действует как ошибка в моем коде и заставляет мой код даже не функционировать. Вот строка:

var lines=myPlaylist.responseText.split("\n");

Нет ошибки, если я разделю массив myPlaylist с другими символами. Просто \ n вызывает проблему, которую я не понимаю.

Сначала я думал, что ошибка связана с пробелами: nowrap, так как я выполняю свой код в Chrome. Хотя я нигде не использовал пустое пространство, я пытался установить его в нормальное состояние, но оно не работало. Точно так же я пробовал свой код в других браузерах (Firefox, IE и т. Д.), Он тоже не работал. Похоже, у меня проблема с использованием \ n. Есть ли другой способ использовать новую строку или ошибку с моим кодом?

И, между прочим, ошибка кажется синтаксической ошибкой, поскольку она не просто игнорирует символ \ n. Просто заставляет мой код не работать

РЕДАКТИРОВАТЬ: Пример responseText

[playlist]

File1=http://localhost:7000/Videos/Big%20Buck%20Bunny%20Trailer.ogv
Title1=Bunny Trailer
Length1=23

File2=http://localhost:7000/Videos/Dizzy%20Cat%20Video.ogv
Title2=Kedi 
Length2=33

NumberOfEntries=2

Version=2

Ответы [ 5 ]

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

Я нашел свое решение моей проблемы.
После использования случайных специальных символов, \ r символ, используемый для возврата каретки, работал как брелок для моей проблемы.
Он действовал как символ новой строки \ n или, по крайней мере, работал в моем случае.
Спасибо всем за ответы и полезные комментарии.

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

Попробуйте использовать эту строку

/\n/

Вместо этого

"\n"
0 голосов
/ 05 февраля 2014

Используйте \\n вместо \n Я попробовал свой код, и он работает нормально

0 голосов
/ 02 февраля 2011

Это должно работать без проблем. Вы уверены, что myPlaylist имеет свойство responseText, а это свойство является строкой?

Что произойдет, если вы обнаружите возможную ошибку?

try {
  var lines = myPlaylist.responseText.split(/\n/g);
  alert(lines.length);
} catch (e) {
  alert(e.message);
}
0 голосов
/ 02 февраля 2011

Вот SO поток, который предоставит немного больше информации

Символ новой строки JavaScript?

EDIT1: Я только что проверил это ион распадается соответствующим образом на новые строки.Можете ли вы опубликовать часть того, что вы пытаетесь разделить?

<html>
    <script>
        function testSplit(value)
        {
            var lines = value.split(/\n/);
            alert(lines);
        }
    </script>
    <body>
        <textarea id="test" name="test" onblur="testSplit(this.value);">

        </textarea>
    </body>
</html>

EDIT2:

Можете ли вы попытаться преобразовать ваш responseText в объект и посмотреть, что вы получитеиз этого - извините, просто стреляю из бедра здесь, так как у меня не было времени, чтобы что-то макетировать для тестирования.

eval("var playlistResponse = ("+ myPlaylist.responseText +")");

Вот несколько старая статья, которая может быть вам полезна: http://www.peachpit.com/articles/article.aspx?p=443580&seqNum=4

...