JS中的换行符问题

时间:2011-02-02 12:35:29

标签: javascript html google-chrome newline

我正在阅读一个包含xmlHttp对象的文件,并通过split方法将responseText与换行符分开。

但“\ n”字符字面上不起作用。它在我的代码中就像一个错误,导致我的代码甚至没有功能。 这是一行:

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

如果我将数组myPlaylist与其他字符分开,则没有错误。 只是\ n导致我无法理解的问题。

起初,我认为错误是由于white-space: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 个答案:

答案 0 :(得分:3)

我找到了解决问题的方法 使用随机特殊字符后,用于回车的 \ r 字符就像我的问题的魅力一样 它的作用就像一个换行符 \ n ,或者至少它在我的情况下完成了它的工作 感谢大家的回答和有用的评论。

答案 1 :(得分:1)

尝试使用此行

/\n/

而不是这个

"\n"

答案 2 :(得分:0)

这是一个提供更多洞察力的SO线程

JavaScript string newline character?

<强> 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

答案 3 :(得分:0)

这个 应该没有问题。 您确定myPlaylist具有responseText属性,并且该属性是字符串吗?

如果发现最终错误会怎样?

try {
  var lines = myPlaylist.responseText.split(/\n/g);
  alert(lines.length);
} catch (e) {
  alert(e.message);
}

答案 4 :(得分:-1)

使用\\n代替\n我尝试了我的代码并且工作正常