JS/ES6 - 将字符串拆分为数组,将元素保存在数组中(案例密集)

Chr*_*itt 2 javascript arrays split ecmascript-6

我正在尝试创建一个函数,它接受一个字符串和一个分隔符,并将字符串拆分为一个数组,同时保持分隔符,使用不区分大小写的搜索,并保留原始大小写.

例如,函数签名应如下所示:

advanced_split("Test Round Start", "St")
Run Code Online (Sandbox Code Playgroud)

它应该返回:

["Te", "st", " Round ", "St", "art"]
Run Code Online (Sandbox Code Playgroud)

请注意,拆分是使用不区分大小写完成的,但原始字符串中的大小写保留在输出数组中.

ale*_*lex 6

这样做.

function advanced_split(string, delimiter) {
   return string.split(new RegExp(`(${delimiter})`, 'i'));
}

advanced_split("Test Round Start", "St") // ["Te", "st", " Round ", "St", "art"]
Run Code Online (Sandbox Code Playgroud)

它使用捕获组来提取每个拆分的分隔符部分,从而保留了大小写.i正则表达式的标志意味着它将不区分大小写.

值得指出的是,为了使这个函数更加健壮,你应该在分隔符上使用正则表达式引用函数,否则函数可能会在正则表达式中具有特殊字符的分隔符字符串上崩溃.