JavaScript使用正则匹配多分隔符(含字符串分隔符)拆分字符串问题
问题原因
你原有代码里的正则/(AGL|\/|)/g末尾多了一个空分支|,会触发正则空匹配,导致字符串按单个字符拆分,所以会出现array[0]仅返回L的问题。
解决代码
const str = "LLF ABC TEMP / HERE / RET / UP TP 12F AGL PLACENAME VALUES / AVM / ABC / PPP / END"; const array = str.split(/\/|AGL/g) .map(item => item.trim()) .filter(Boolean);
逻辑说明
- 修正后的正则
/\/|AGL/g仅匹配/字符和AGL字符串作为拆分边界,不会拆分单个字符 - 用
trim()清除每个拆分结果首尾的多余空格 - 用
filter(Boolean)过滤可能存在的空字符串,避免出现多余无效元素
运行后得到的数组和你要求的9个元素完全一致。
内容的提问来源于stack exchange,提问作者tj26
相关产品推荐
相关产品推荐

