javascript - JS/ES6 - 将字符串拆分为数组,将元素保存在数组中(大小写密集)
问题描述
我正在尝试创建一个函数,该函数采用字符串和分隔符并将字符串拆分为数组,同时保留分隔符,对搜索使用不区分大小写,并保留原始大小写。
例如,函数签名应如下所示:
advanced_split("Test Round Start", "St")
它应该返回:
["Te", "st", " Round ", "St", "art"]
请注意,拆分是使用不区分大小写的方式完成的,但原始字符串中的大小写会保留在输出数组中。
解决方案
这会做到的。
function advanced_split(string, delimiter) {
return string.split(new RegExp(`(${delimiter})`, 'i'));
}
advanced_split("Test Round Start", "St") // ["Te", "st", " Round ", "St", "art"]
它使用捕获组来提取每个拆分的分隔符部分,保留大小写。正则表达式的i
标志意味着它将不区分大小写。
值得指出的是,为了使这个函数更加健壮,你应该在分隔符上使用正则表达式引用函数,否则函数可能会在正则表达式中有特殊字符的分隔符字符串上崩溃。
推荐阅读
- django - 序列化器验证 - TypeError ...“UniqueTogetherValidator”对象不可迭代
- python-3.x - 如何在熊猫中读取html时定义选定的列名
- http - Golang http 服务文件 - 提供并行下载支持 - contentLength 和接受范围不起作用
- android - 记录 WorkManager 工作人员
- java - SPRING BOOT/未能在 org.springframework.boot:spring-boot-starter:jar:1.0.0.RC5 收集依赖项
- java - 对更小元素的二分搜索
- dictionary - 运行空 Map 时 Map.length 的返回值
- javascript - Vue生成并下载excel文件
- node.js - 升级 Sequelize 包
- loops - Newton Raphson 方法 - While 循环不会取消