我的用户从另一个像这样的网站复制数据:

,它在粘贴时如下所示:
休斯敦(IAH)至坎昆(CUN) -星期五,7月12日 美联1084 Dep: 6:58PM Arr: 9:15PM 2h 17m波音737经济(英) 坎昆(CUN)至休斯敦(IAH) -太阳,7月14日 美联1017 Dep: 2:00PM Arr: 4:23PM 2h 23m波音737经济(英)
我正在解析下面的.复制的文本
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(" ")没有将复制表中的不同单元格视为空格,因此没有在我期望的地方拆分文本。
,我怎么才能绕过这件事?
发布于 2013-07-08 07:25:40
使用下面的regex在任何空格上拆分,就可以为我解决这个问题,多亏了这个回答
var arrayOfWords = arrayOfLines[1].split(/\s+/g);发布于 2013-07-08 07:13:05
这是因为您的字符串没有用单个空格统一分隔。它们之间可能有双重或三重空间。
修改后的版本在3个空格上分裂:
http://jsfiddle.net/zT38R/6/
var arrayOfLines = document.getElementById("fltInput").value.split('\n');
console.log(arrayOfLines);
var arrayOfWords = arrayOfLines[1].split(" ");// changed here两种方式都可以正确设置输入格式。或者更好地使用基于regex的数据解析。
https://stackoverflow.com/questions/17520831
复制相似问题