如何在JavaScript中按特殊字符拆分字符串并保留特殊字符?
JavaScript拆分含特殊字符的字符串并保留特殊字符
需求很明确:把包含特殊字符的字符串拆分,同时把这些特殊字符单独作为数组元素保留。比如输入字符串 Angular 6&Angular 9/Angular 10,要得到 ["Angular 6", "&", "Angular 9", "/", "Angular 10"]。
用正则表达式的split方法就能搞定,核心是利用捕获组让分隔符也被包含在结果数组里:
const input = "Angular 6&Angular 9/Angular 10"; const splitResult = input.split(/([&/])/); console.log(splitResult); // 输出:["Angular 6", "&", "Angular 9", "/", "Angular 10"]
原理说明
- 正则
([&/])里的括号是捕获组,会匹配&或/这两个特殊字符,并且把匹配到的内容保留下来 - 当
split方法遇到带捕获组的正则时,会将捕获到的分隔符也加入拆分后的数组中,刚好满足需求
如果需要支持更多特殊字符,只需要扩展正则里的字符集就行,比如要加#和@,就改成([&/#@])。
内容的提问来源于stack exchange,提问作者Murugan
相关产品推荐
相关产品推荐

