gpt4 book ai didi

javascript - 如何使用 Javascript RegExp 匹配和替换包含子字符串的整个单词

转载 作者:行者123 更新时间:2023-11-28 18:11:11 25 4
gpt4 key购买 nike

我想使用 Javascript 匹配并替换包含子字符串的整个单词。

这是我到目前为止的代码:

var final = ""
var n, a = [], walk = document.createTreeWalker(el, NodeFilter.SHOW_TEXT, null, false);
const searchWordPattern = new RegExp(searchWord, 'i');

while(n = walk.nextNode()) {
a.push(n);
n.nodeValue = n.nodeValue.replace(searchWordPattern, "--");
final = final.concat(n.nodeValue);
}

这部分有效。它找到我正在搜索的单词并将其删除。但如果搜索词以任何方式共轭,那么它就会被抛在后面。我希望正则表达式能够匹配找到子字符串的整个单词。并将其全部删除。我需要改变什么?

编辑

我尝试使用下面的答案,但它似乎对\w 或\S 变体没有任何不同。这是我正在使用的代码:

var final = ""
var n, a = [], walk = document.createTreeWalker(el, NodeFilter.SHOW_TEXT, null, false);
const searchWordPattern = new RegExp('\S*' + searchWord + '\S*', 'i');

while(n = walk.nextNode()) {
a.push(n);
n.nodeValue = n.nodeValue.replace(searchWordPattern, "--");
final = final.concat(n.nodeValue);
}

结果是 searchWord 被“--”字符串替换,但如果它是共轭的,则不包含其他字符。因此,如果“look”是搜索词,则正则表达式的结果是“--ing”。我希望它只是“--”。

最佳答案

您需要调整正则表达式,以便不仅仅是搜索单词:

new RegExp(searchWord, 'i');

您还可以搜索任何周围的“单词”字符:

new RegExp('\\w*' + searchWord + '\\w*', 'i');

或所有非空白字符:

new RegExp('\\S*' + searchWord + '\\S*', 'i');

关于javascript - 如何使用 Javascript RegExp 匹配和替换包含子字符串的整个单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41528757/

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