我的用户从另一个网站复制数据,如下所示:



粘贴时如下所示:


  休斯敦(IAH)至坎昆(CUN)-7月12日,星期五
  United United 1084出发:6:58 PM Arr:9:15 PM 2h 17m波音737经济(E)
  
  坎昆(CUN)至休斯敦(IAH)-7月14日,星期日
  United United 1017出发:2:00 PM Arr:4:23 PM 2h 23m波音737经济(E)


我正在解析下面复制的文本。

var arrayOfLines = document.getElementById("fltInput").value.split('\n');
var arrayOfWords = arrayOfLines[1].split(" ");


我希望arrayOfWords[1]UnitedarrayOfWords[2]1084,但是我却得到1084 Dep:6:58PM Arr::

这是JsFiddle。 (滑动页面上的滑块以了解我的意思。)

显然,问题在于.split(" ")不会在复制的表中看到不同的单元格为空格,因此无法在期望的位置拆分文本。

我该如何解决?

最佳答案

这是因为您的字符串不是用单个空格统一分隔。它们之间可能有两倍或三倍的空格。

修改后的版本分为3个空格:

http://jsfiddle.net/zT38R/6/

var arrayOfLines = document.getElementById("fltInput").value.split('\n');
 console.log(arrayOfLines);
var arrayOfWords = arrayOfLines[1].split("  ");// changed here


正确格式化您的输入。
或者更好地使用基于正则表达式的数据解析。

09-25 18:18