Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.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_Split_Regular Language - Fatal编程技术网

Javascript 如何用空格分隔字符串,并保持逗号分隔?

Javascript 如何用空格分隔字符串,并保持逗号分隔?,javascript,regex,split,regular-language,Javascript,Regex,Split,Regular Language,我想把一个句子分成几个字。如果它只包含空格,则.split(/\s+/)可以工作 但是,如何也可以按逗号分割,并在生成的数组中保留逗号呢 我尝试过类似的方法,但不起作用: .split(/(?=,)|(?!=,)|\s/) 输入示例: "this,is, a test" 预期产出: ["this", ",", "is", ",", "a", "test"

我想把一个句子分成几个字。如果它只包含空格,则
.split(/\s+/)
可以工作

但是,如何也可以按逗号分割,并在生成的数组中保留逗号呢

我尝试过类似的方法,但不起作用:

.split(/(?=,)|(?!=,)|\s/)
输入示例:

"this,is, a test"
预期产出:

["this", ",", "is", ",", "a", "test"]
我错了什么?甚至可以只使用正则表达式吗?

您可以使用

console.log(
“这是一个测试”。匹配(/[^\s,]+|,/g)

)
如果要在空格上拆分并保留逗号,另一个选项可以是匹配1+个空格字符或在捕获组中捕获逗号以保留它并删除空条目

(,)|\s+
  • (,)
    在组1中捕获一个逗号以继续使用拆分
  • |
  • \s+
    匹配一个或多个空格字符
console.log(
“这是一个测试”
.split(/(,)|\s+/)
.filter(布尔值)
);