将字符串拆分为字符数组,将某些序列保持在一起(JavaScript)
我有我的字符串:将字符串拆分为字符数组,将某些序列保持在一起(JavaScript),javascript,regex,Javascript,Regex,我有我的字符串: 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 您不能单独使用split来执行此操作–/(\
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
您不能单独使用split来执行此操作–/(\r\n)?/,例如,将在结果中保留未定义的,因此您需要求助于
匹配
var result = str.match(/\r\n|[\S\s]/g);
其中
[\S\S]
是
,但包括换行符。请注意,result
将在空字符串上为null
。您可以在split中使用此正则表达式:
var str = "123\r\nabc";
console.log( str.split(/(\r\n)?/).filter(Boolean) );
- 捕获组周围的
将确保在生成的数组中捕获它李>\r\n
用于从数组中过滤出未定义的元素过滤器(布尔)
["1", "2", "3", "
↵", "a", "b", "c"]
太好了,谢谢!是的,最后还是这样:
return(input.match(/\r\n |[\S\S]/g)| |[])