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

如何用正则表达式将字符串前导的每个空格替换为 ?

解决前导空格逐个替换为 的正则方案

嘿,我懂你的痛点——之前找到的正则都是把所有前导空格一次性换成一个 ,但你需要的是每个空格都单独替换,对吧?别担心,这完全可以实现,给你两种靠谱的方案:

方案一:用\G锚点逐个匹配前导空格

这个正则能精准定位每一个前导空格,然后逐个替换:

var str = "   test !";
console.log(str.replace(/(?:^|\G)\s/g, ' '));
// 输出:"   test !"

正则原理拆解:

  • (?:^|\G):非捕获分组,用来限定匹配范围。^匹配字符串开头,\G表示上一次匹配结束的位置,两者结合就能确保我们只替换开头连续的空格,不会影响字符串中间的空格。
  • \s:匹配单个空白字符(如果只想匹配普通空格,换成 更精准)。
  • g:全局匹配标志,让正则遍历所有符合条件的单个空格。

方案二:用替换函数生成对应数量的 

如果觉得正则有点绕,也可以用更直观的方式:先捕获所有前导空格,再根据空格数量生成对应长度的 字符串:

var str = "   test !";
console.log(str.replace(/^\s+/g, (match) => ' '.repeat(match.length)));
// 输出同样是:"   test !"

这个思路很简单:^\s+捕获开头所有连续空格,然后用repeat()方法根据匹配到的空格长度,重复 相应次数,完美实现逐个替换的效果。

两种方法都能满足你的需求,选哪个看你自己的习惯啦~

内容的提问来源于stack exchange,提问作者Beppe

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 10:04:41