Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将字符串拆分为字符数组,将某些序列保持在一起(JavaScript)_Javascript_Regex - Fatal编程技术网

将字符串拆分为字符数组,将某些序列保持在一起(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)| |[])