首页 > 解决方案 > 页面加载后替换 HTML 文档中的字符串

问题描述

我有一个带有一些标记的 html 文档,例如:

<p>Substance A, a metabolite enhances serotonergic production in neurons [33088927]. Substance B confers neuroprotection [28388366].  &nbsp;</p>

页面加载后,我想查找文档中出现方括号的每个匹配项,并将字符串替换为其他内容,例如 [33088927] -> 33088927i。

使用 regex101.com,我整理了一个查找方括号实例的函数:

function the_Pubs(){
    window.addEventListener("load", function(){
        const regex = /\[(.*?)\]/gm;
        let result;
            while((result = regex.exec(document.documentElement.outerHTML)) !== null) {
                if (result.index === regex.lastIndex) {
                        regex.lastIndex++;
                        }

        result.forEach((match, groupIndex) => {
        console.log(`Found match, group ${groupIndex}: ${match}`);
            
});
}
})}

如何替换找到的实例?

标签: javascriptregex

解决方案


您可以使用String#replace回调函数。

document.documentElement.innerHTML = document.documentElement.innerHTML
            .replace(/\[(.*?)\]/gm, (m, g) => g + "i");

推荐阅读