如何用正则表达式在JavaScript中按前缀过滤字符串数组
按指定前缀筛选字符串生成新数组
需求说明
从分割后的字符串数组中,分别筛选出以OG(原始工单)和NW(新工单)开头的字符串,生成两个独立数组。
原始字符串:
const originalString = "4162416245/OG74656489/OG465477378/NW4124124124/NW41246654";
分割后的数组:
const splitArr = originalString.split('/'); // 结果:["4162416245", "OG74656489", "OG465477378", "NW4124124124", "NW41246654"]
预期输出:
- ogArr = ["OG74656489", "OG465477378"]
- nwArr = ["NW4124124124", "NW41246654"]
实现方案
方法1:使用startsWith方法(ES6+)
startsWith方法可直接判断字符串是否以指定前缀开头,代码简洁直观:
const originalString = "4162416245/OG74656489/OG465477378/NW4124124124/NW41246654"; const splitArr = originalString.split('/'); // 筛选OG前缀的数组 const ogArr = splitArr.filter(item => item.startsWith('OG')); // 筛选NW前缀的数组 const nwArr = splitArr.filter(item => item.startsWith('NW')); console.log(ogArr); // ["OG74656489", "OG465477378"] console.log(nwArr); // ["NW4124124124", "NW41246654"]
方法2:使用indexOf方法(兼容旧环境)
如果需要支持不兼容ES6的旧环境,可通过indexOf判断前缀是否处于字符串起始位置:
const originalString = "4162416245/OG74656489/OG465477378/NW4124124124/NW41246654"; const splitArr = originalString.split('/'); // 筛选OG前缀的数组 const ogArr = splitArr.filter(item => item.indexOf('OG') === 0); // 筛选NW前缀的数组 const nwArr = splitArr.filter(item => item.indexOf('NW') === 0); console.log(ogArr); // ["OG74656489", "OG465477378"] console.log(nwArr); // ["NW4124124124", "NW41246654"]
内容的提问来源于stack exchange,提问作者David Kiss
相关产品推荐
相关产品推荐

