如何用JavaScript在字符串的前三个数字后插入空格
实现方案
你可以通过两步正则替换完成需求,JS引擎原生实现的正则操作性能远高于手动遍历字符,完全可以应对大数量级的数组处理。
核心代码
const rawArray = [ "A12345678", "ABC12345678", "1234 56 7 8", "12 345 67 8", "AB12345678BVC", ] const processedArray = rawArray.map(item => { // 第一步移除所有空格得到连续字符串 const noSpaceStr = item.replace(/\s/g, '') // 第二步匹配「开头任意数量非数字 + 前3个数字」的分组,在分组后插入空格 return noSpaceStr.replace(/(^\D*\d{3})/, '$1 ') })
规则说明
- 第一步的
\s匹配所有空白字符,加全局修饰符g后可以批量移除字符串中所有位置的空格 - 第二步的
^\D*匹配字符串开头所有非数字字符,允许匹配数量为0(兼容开头直接是数字的场景) \d{3}匹配连续3个数字,用括号()将前面的规则包裹为捕获分组,替换时用$1引用分组匹配到的内容,在后面加空格就完成了插入操作
输出结果
运行代码后得到的processedArray和期望输出完全一致:
[ "A123 45678", "ABC123 45678", "123 45678", "123 45678", "AB123 45678BVC", ]
内容的提问来源于stack exchange,提问作者PRSHL
相关产品推荐
相关产品推荐

