JS / ES6-将字符串拆分为数组,将元素保留在数组中(区分大小写)

时间:2018-10-30 16:43:38

标签: javascript arrays ecmascript-6 split

我正在尝试创建一个函数,该函数接受字符串和定界符,并将其拆分为数组,同时保留定界符,对搜索不区分大小写,并保留原始大小写。

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

advanced_split("Test Round Start", "St")

它应该返回:

["Te", "st", " Round ", "St", "art"]

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

2 个答案:

答案 0 :(得分:6)

这会做到的。

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

advanced_split("Test Round Start", "St") // ["Te", "st", " Round ", "St", "art"]

它使用捕获组来提取每个拆分的定界符部分,以保留大小写。正则表达式的i标志表示它不区分大小写。

值得指出的是,要使此函数更健壮,应在定界符上使用regex quoting函数,否则该函数可能会在正则表达式中具有特殊字符的定界符字符串上崩溃。

答案 1 :(得分:0)

最未优化的方法是嵌套循环:

app.on("ready", createWindow);