我有一个textarea,需要一个默认值,包括新行,所以我使用了从this answer找到的HTML实体的技术
<textarea rows=4 id="mytextarea">John,2 Jane,3 John,4 Jane,5</textarea>
然后我有一个按钮,启动一个解析textarea的按钮,我想要完成的第一件事是从textarea值创建一个rows
数组,但这是我遇到问题的地方。有another answer详细说明哪些浏览器表示换行符为\ r \ n,而且只作为\ n,但在我的情况下这可能不是绝对必要的,我仍然决定尝试:
var textAreaValue = document.getElementById("mytextarea").value;
textAreaValue = textAreaValue.replace(/\s/g, ""); //remove white space
var rows = textAreaValue.replace(/\r\n/g, "\n").split("\n");
rows
但是会以["John,2Jane,3John,4Jane,5"]
的形式返回。因此分裂没有效果;我做错了什么?
答案 0 :(得分:1)
您不使用\n
和\r
,因此您可以分割
或
。
var rows = textAreaValue.replace(/(&#[13|10];)+/g, "\n").split("\n");
答案 1 :(得分:1)
正则表达式中的\ s正在删除换行符。尝试注释掉替换并再次检查行值,然后应该如您所愿!
function parseText() {
var textAreaValue = document.getElementById("mytextarea").value;
//textAreaValue = textAreaValue.replace(/\s/g, ""); //remove white space
var rows = textAreaValue.replace(/\r\n/g, "\n").split("\n");
alert(rows);
}
请在此处查看JSFiddle:http://jsfiddle.net/xs2619cn/1/
我将逗号更改为句号,以使警报输出更清晰。