2017-06-21 517 views
0

我有下面的代码导入文件。我将它拆分为split(“\ n \ r”)代码,但现在每个空行都有逗号。如何解决它..见下面的代码,并出图片。javascript split(“ n r”)在空行添加逗号

<html> 
    <head> 
     <script src="http://code.jquery.com/jquery-1.10.2.js"></script> 
    </head> 

<body> 


     <textarea id="textareaid" name="textareaid" class = "textdata" value="" rows="10" cols="100" placeholder="Enter Any Text!"></textarea> 
     <br> 
     <input id="filename" class="btnsubmit" type="file" accept="text/plain" onchange="PreviewText();" /> 

<script type="text/javascript"> 

       function PreviewText() { 
       var file = document.getElementById("filename").files[0]; 
        var reader = new FileReader(); 
        reader.onload = function (e) { 
        var array = e.target.result.split("\n\r"); 
        alert (array); 
        document.getElementById("textareaid").value = array; 
        }; 
        reader.readAsText(file); 
     }; 

</script> 

</body> 
</html> 

enter image description here

+0

这是因为'警报(阵列)'基本上是'警报(与Array.toString()) '。相反,'.join(...)'回到一个字符串,无论你想要什么样的分隔符 – Bergi

+0

'\ n \ r' - 奇怪,我从来没有见过那行结尾 - 通常是'\ n'或'\ r \ n “不是吗? –

回答

0

您可以过滤所有的textarea的显示之前只有逗号线。

检查下面的代码片段。我用Array.filter来检查该行是否有,

var array = [ 
 
    "Hello", 
 
    ",", 
 
    "Something", 
 
    ",", 
 
    "Great" 
 
]; 
 

 
array = array.filter(function(line) { 
 
    return line.length > 1 && line !== ","; 
 
}); 
 

 
console.log(array);

0

你为什么不这样做,Array.join(" ")变换数组转换为字符串并删除分隔符,在这种情况下阵列逗号

检查出来:

  function PreviewText() { 
       var file = document.getElementById("filename").files[0]; 
       var reader = new FileReader(); 
       reader.onload = function (e) { 

       var array = e.target.result.split("\n\r"); 
       document.getElementById("textareaid").value = array[0] 
       document.getElementById("textareaid1").value = array[1] 
       document.getElementById("textareaid2").value = array[2] 
       }; 
       reader.readAsText(file); // 
    }; 

====================================== ==== // ==========================

如果你想动态地做到这一点,你可以这样做:

array.forEach(function(article){ 
    list = document.createElement("ul"); 
    line = document.createElement("li"); 
    span = document.createElement("span"); 

    art = document.createTextNode(article) 

    span.appendChild(art); 
    line.appendChild(span); 
    list.appendChild(line); 

    boxNode.appendChild(list) 
}) 

实例工作(概念验证) https://jsbin.com/fuyirajoni/edit?html,js,output

希望它可以帮助你:)

+0

它不起作用..它给出错误.. 未捕获TypeError:e.target.result.join不是函数 –

+0

你想完成什么? –

+0

我有文章,我想转换成数组。然后希望你在一个textarea中使用第一行,并在其他textarea中使用第一行 –