【发布时间】:2025-12-19 16:45:17
【问题描述】:
所以我有一个我似乎无法找到答案的简单问题。我有:
let a = '1111Some1text1or1something'
我正在努力实现:
'2222Some1text1or1something'
为了清楚起见,我将字符设置为数字,实际上我是在尝试替换空格。无论如何请注意,它仅在开头替换单个字符的每个实例。当它到达\w时它将停止替换
几乎所有的谷歌搜索都让我找到了关于“减少重复字符”等的答案,但我希望“替换一个字符的所有实例,直到第一个单词”
a.replace(/^[1]*/, '2')
将所有重复的字符压缩成一个。
【问题讨论】:
-
a.replace(/1/gy, '2')。使用 ECMAScript 2018+ JS 环境,您甚至可以使用a.replace(/(?<=^1*)1/g, '2') -
试试这个:
(.)\1+匹配第一个 (\1) 捕获组中最近匹配的相同文本。 -
感谢@WiktorStribiżew,我很想使用那个,但“粘性”不兼容 IE11。无论如何,我都会给你信用,因为 IE11 是垃圾。不幸的是,我在 IE11 领域,所以不要这样做。
-
@lux 似乎将所有内容替换为单个“查找”。所以这会粉碎重复的模式。然而,这是一件很酷的事情,只是在我的情况下不起作用。
标签: javascript regex