首页 > 解决方案 > 通过多个分隔符拆分字符串并保留一些分隔符同时丢弃其他分隔符

问题描述

我想" "在删除它的同时用空格字符串分割,并","在保留它的同时用逗号分割。

var str = "This is a word, and another."
var regexKeepCommaDelimeter = new RegExp(/(,)/,'g')
var regexKeepCommaRemoveSpace = new RegExp(/(????)/,'g')
var splitArray = str.split(regexKeepCommaRemoveSpace)
var desiredArray = ['This', 'is', 'a', 'word', ',', 'and', 'another.' ]
var testPassed = splitArray.every((x,i)=> x == desiredArray[i])
console.log('Arrays match:', testPassed)

标签: javascriptregexstringsplit

解决方案


一种相当简单的方法是在,没有空格的地方添加空格,然后在空格上分割:

var splitArray = str.replace(/ ?, ?/g, " , ").split(" ");

现场示例:

var str = "This is a word, and another."
var splitArray = str.replace(/ ?, ?/g, " , ").split(" ");
console.log(splitArray);
var desiredArray = ['This', 'is', 'a', 'word', ',', 'and', 'another.' ];
console.log(splitArray.every((e, i) => e === desiredArray[i]));
.as-console-wrapper {
    max-height: 100% !important;
}


推荐阅读