我有我的字符串:
var str = '123\r\nabc';
我想制作这个数组:
["1", "2", "3", "
", "a", "b", "c"]
所以,我希望按字符拆分,但要将\r\n
作为结果数组中的一个元素保存在一起。
我失败的尝试:
console.log(str.split(/\r\n|/)); // removes \r\n
console.log(str.split(/\r\n/)); // splits by \r\n
答案 0 :(得分:3)
单独拆分无法执行此操作 - /(\r\n)?/
例如会在结果中留下undefined
- 因此您需要求助match
。< / p>
var result = str.match(/\r\n|[\S\s]/g);
其中[\S\s]
为.
,但包括换行符。请注意,result
在空字符串上为null
。
答案 1 :(得分:1)
您可以在拆分中使用此正则表达式:
var str = "123\r\nabc";
console.log( str.split(/(\r\n)?/).filter(Boolean) );
\r\n
周围的捕获组将确保在结果数组中捕获它。 filter(Boolean)
用于从数组中过滤掉未定义的元素。<强>输出:强>
["1", "2", "3", "
↵", "a", "b", "c"]