gpt4 book ai didi

javascript - 如何替换除第一次出现以外的所有匹配字符

转载 作者:搜寻专家 更新时间:2023-11-01 05:22:17 26 4
gpt4 key购买 nike

我正在尝试使用正则表达式来比较 JavaScript 中的字符串。我想用空字符 '' 替换所有 '.'s'%'s 但问题是我不想替换第一次出现的 '.'.

value.replace(/\%\./g, '');

预期结果如下:

.4.5.6.7. ==> .4567
4.5667.444... ==> 4.56667444
..3445.4 ==> .34454

最佳答案

你可以传入一个函数来replace,然后像这样跳过第一个匹配:

var i = 0;
value.replace(/[\.\%]/g, function(match) {
return match === "." ? (i++ === 0 ? '.' : '') : '';
});

这是一个没有外部变量的独立版本:

value.replace(/[\.\%]/g, function(match, offset, all) { 
return match === "." ? (all.indexOf(".") === offset ? '.' : '') : '';
})

第二个版本使用传递到 replace() 函数的 offset 与第一个 . 的索引进行比较,在原始版本中找到字符串(全部)。如果它们相同,则正则表达式将其保留为 .。后续匹配项的偏移量将高于第一个 . 匹配项,并将替换为 ''% 将始终替换为 ''


两个版本的结果是:

4.5667.444... ==> 4.56667444
%4.5667.444... ==> 4.5667444

两个版本的演示:http://jsbin.com/xuzoyud/5/

关于javascript - 如何替换除第一次出现以外的所有匹配字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30227218/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com