javascript - 在FileReader中替换回车

时间:2017-11-01 14:45:26

标签: javascript replace filereader

我正在读取另一个网站的XML文件,我需要用空格替换响应中的任何换行符,否则单词将一起运行。

我试过了......

    function myFunction(xml) {

            var counter = 0;
            var txtFile = new XMLHttpRequest();
            var captionCounter = 0;
            var captionList = new Array();

            var xmlDoc = xml.responseXML;
            var captions = xmlDoc.getElementsByTagName('text');

            for (i = 0; i < captions.length; i++) {
                var x = xmlDoc.getElementsByTagName('text')[i];
                var y = x.childNodes[0];
                var txt = x.getAttribute("start");
                //document.getElementById("captionComment").innerHTML = document.getElementById("captionComment").innerHTML + "<br/>" + txt + " " + y.nodeValue; 
                captionList[i] = new Array(2);
                captionList[i][0] = txt;
                captionList[i][1] = y.nodeValue;
                captionList[i][1] = captionList[i][1].replace(/&quot;/g, '\\"');
                captionList[i][1] = captionList[i][1].replace(/\r\n/g, ' ');

但它似乎没有做任何事情,就像它看不到有回车那里。这是我正在加载的网站:https://www.youtube.com/api/timedtext?&v=lo0X2ZdElQ4&lang=en

虽然它看起来像标题“我必须说我对玛丽说出我的名字的方式印象非常深刻。”在一行上,它实际上在“方式”之后包含一个回车符,所以我得到“wayMary”而不是“way Mary”。我保存了该页面的代码,我可以在保存的文件中看到回车符,但javascript似乎没有看到它出于某种原因。这当然也发生在其他地方。

1 个答案:

答案 0 :(得分:1)

问题在于您正在寻找carriage return + linefeed,并且数据似乎有简单的回车。将您的替换行更改为此,它应该可以工作:

captionList[i][1] = captionList[i][1].replace(/\r\n/g, ' ').replace(/[\r\n]/g, ' ');