我的用户从其他网站复制数据,如下所示:
粘贴时看起来像这样:
休斯顿(IAH)到坎昆(CUN) - 星期五,7月12日 United United 1084 Dep:6:58 PM Arr:9:15 PM 2h 17m Boeing 737 Economy(E)
Cancun(CUN)到休斯顿(IAH) - Sun,7月14日 United United 1017 Dep:下午2:00 Arr:4:23 PM 2h 23m Boeing 737 Economy(E)
我正在解析使用以下内容复制的文本。
var arrayOfLines = document.getElementById("fltInput").value.split('\n');
var arrayOfWords = arrayOfLines[1].split(" ");
我希望arrayOfWords[1]
United
和arrayOfWords[2]
为1084
,而是1084 Dep:
和6:58PM Arr::
这是JsFiddle。 (滑动页面上的滑块以查看我的意思。)
显然问题是.split(" ")
没有将复制表中的不同单元格视为空格,因此不会将文本拆分到我期望的位置。
我该如何解决这个问题?
答案 0 :(得分:1)
这是因为你的字符串不是用单个空格统一分隔的。它们之间可能有两个或三个空格。
在3个空格上拆分的修改版本:
var arrayOfLines = document.getElementById("fltInput").value.split('\n');
console.log(arrayOfLines);
var arrayOfWords = arrayOfLines[1].split(" ");// changed here
正确格式化输入。 或者更好地使用基于正则表达式的数据解析。
答案 1 :(得分:1)
使用下面的正则表达式拆分任何空格都可以解决这个问题,这要归功于answer
var arrayOfWords = arrayOfLines[1].split(/\s+/g);