我正在尝试使用 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中,选择三行信息时,它正确匹配\ n为3,将它们输出到数组中,并在世界上没有护理的情况下通过雏菊场嬉戏。
但是在 IE10 和 Firefox 19 中,它匹配前三个换行符很好,然后拉出一个额外的空白。因此 \n 表达式将其拆分为四个项目,撞上一栋建筑物并杀死数百人。
我已经阅读了很多关于不同浏览器以不同方式处理 CRLF 字符的内容,并尝试通过 \r\n 和仅 \r 进行拆分,但这似乎会带来更多麻烦。我还将 Excel 行复制到 Notepad++ 并打开 CRLF 字符的可见性,看到似乎只有 3 个,那么为什么 IE 和 Firefox 添加另一个?
我还阅读了很多关于人们对正则表达式、JS、浏览器、换行符和 Excel 的痛苦,但其中大部分似乎与旧浏览器更相关,所以我希望了解当前事物状态的人可以提供一些见识。
谢谢!