我希望java脚本代码添加自定义按钮以便在下一步找到并在夏天注释编辑器中替换,如下图所示 -
我通过使用“gi”正则表达式全局替换文本,并成功使用“i”正则表达式逐个替换所有单词。但我无法使用find next跳过单词然后替换下一个单词。
请帮忙。提前致谢。
答案 0 :(得分:3)
您可以将函数传递到正则表达式替换语句中,在该语句中,您只能在此处显示的方法中替换某个第n个匹配项。当有人在新搜索中第一次点击Find Next
时,它应该创建一个变量来跟踪n
,将其设置为等于1开始。每次他们再次点击Find Next
时,请增加n
的值。当他们点击Replace
时,请使用该值调用replaceNth
,然后增加n
的值并转到下一个结果。
此处的第一个电话显示您可以将此功能用作捕获 - 如果您不通过n
,它将只替换所有内容。如果您确实通过n
,它将替换那一场比赛。
function replaceNth(str, rgx, replacement, n){
if(n) {
let matchIndex = 0
return str.replace(rgx, match => {
return ++matchIndex == n ? replacement : match
})
} else {
return str.replace(rgx, replacement)
}
}
let sampleText = document.querySelector('p').textContent
console.log(replaceNth(sampleText, /cow/gi, 'MOO'))
console.log(replaceNth(sampleText, /cow/gi, 'MOO', 2))

<p>This is sample cow text with the word cow placed repeatedly cow within it.</p>
&#13;