javascript - 需要理解为什么正则表达式没有替换所有匹配项

标签 javascript regex

我正在尝试弄清楚以下正则表达式以及为什么它会给出我得到的结果。

我有以下 javascript:

let result = '7979797'.replace(/797/g,'77');

我本来期望结果的值为 7777,但它的值为 77977。

我希望有人能解释为什么我得到 77977 的值,以及我需要更改正则表达式以将所有具有模式 797 的字符串替换为 77。

最佳答案

当正则表达式用 77 替换第一个 797 时,它不会重新扫描它替换的 Material (77),所以它接下来会看到 9,然后是 797,从而得出您得到的结果。

关于javascript - 需要理解为什么正则表达式没有替换所有匹配项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34554359/

相关文章:

javascript - 我正在尝试使用 Javascript 更改 CSS 元素,但它不起作用

c# - 如何使用 C# .net 查找字符串中的最后一个字母

python - 在最后一个正斜杠和第一个连字符之前获取文本

javascript - 使用正则表达式对 URL 进行 Trix 验证

javascript - 使用 JavaScript 验证货币

javascript - 根据用户列表识别网站

java - 通过 JSON 的多部分请求没有得到响应?

javascript - 在 DomPurify 中允许 HTML 注释

php - REGEX 匹配除/以 : 开头的所有内容

javascript - cloudinary javascript图像上传一个空白文件