You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript使用正则split分割字符串如何去掉空元素得到目标数组

JavaScript split配合正则分割出现空元素的解决方法

问题原因

当split方法的参数是带有捕获组的正则时,返回结果会同时包含分割后的片段和捕获到的分隔符内容,字符串首尾与匹配项的间隙、多个匹配项之间的间隙没有有效内容时,就会生成空字符串,这就是你得到的数组存在空元素的原因。

最优解决方案

直接使用match()方法匹配你需要的双大写字母片段,逻辑更直观:

function pntSq(m){
    // 匹配所有连续两个大写字母的片段,匹配不到时返回空数组避免报错
    let a = m.match(/[A-Z]{2}/gi) || []
    console.log(a)
}
pntSq("YYRR")
// 输出: ['YY', 'RR']

兼容split写法的解决方案

如果你需要保留split的写法,在分割后加过滤逻辑去除假值即可:

function pntSq(m){
    let a = m.split(/([A-Z][A-Z])/gi).filter(Boolean)
    console.log(a)
}
pntSq("YYRR")
// 输出: ['YY', 'RR']

filter(Boolean)会自动过滤数组中的空字符串、null、undefined等假值,刚好可以清除多余的空元素。

内容的提问来源于stack exchange,提问作者Ayman- s.s

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 06:09:03