【发布时间】:2013-07-25 19:48:02
【问题描述】:
我正在尝试使用 JavaScript split() 方法了解不同浏览器的行为,通过换行 (\n) 正则表达式匹配。
我有一个 textarea 输入表单,该表单将从 Excel 中粘贴行并通过换行将它们拆分为一个数组:
var rowsplit = document.getElementById("inputfield").value.split(/\n/g);
用户通过侧边栏选择 Excel 中的行,因此前 11 列有数据,在电子表格边缘之后还有一大堆空列,我稍后会切片()。因此,来自 Excel 的典型输入是:
[data][data][data][data]x11[null][null][null]etc until edge of spreadsheet
不同之处在于正则表达式匹配并推入数组。
在Chrome 28和Safari 5.1中,在选择三行信息时,它将其正确匹配为3,将它们输出到阵列,并通过世界上没有护理的雏菊领域嬉戏。
不过,在 IE10 和 Firefox 19 中,它可以很好地匹配前三个换行符,然后拉出一个额外的空白。因此 \n 表达式将其拆分为 四个 项,然后撞上一栋建筑物并杀死数百人。
我已经阅读了很多关于不同浏览器以不同方式处理 CRLF 字符的信息,并尝试通过 \r\n 和仅 \r 进行拆分,但这似乎会带来更多麻烦。我还把 Excel 行复制到 Notepad++ 中,打开了 CRLF 字符的可见性,看到似乎只有 3 个,那为什么 IE 和 Firefox 又加了一个呢?
我还阅读了很多关于人们在使用 regexp、JS、浏览器、换行符和 Excel 时遇到的痛苦,但其中大部分似乎与旧浏览器更相关,所以我希望有人了解当前状态事情可以提供一些见解。
谢谢!
【问题讨论】:
标签: javascript regex excel browser split