Javascript 测试并替换HTML中的关键字

Javascript 测试并替换HTML中的关键字,javascript,regex,replace,Javascript,Regex,Replace,我试图编写两个函数: 第一个方法测试字符串中的匹配项(如test()) 第二种方法替换关键字 简单的正则表达式(如\bkeyword\b)可以工作,但它可以替换HTML标记中的关键字(例如class、alt)和URL锚定。我该怎么做?我不能使用JavaScript库 编辑:我只想替换第一个匹配和唯一匹配的精确匹配 谢谢假设您有一个HTML,如: var text = '<span class="myclass"> span text </span>'; 此外,请检查

我试图编写两个函数:

  • 第一个方法测试字符串中的匹配项(如test())
  • 第二种方法替换关键字
简单的正则表达式(如\bkeyword\b)可以工作,但它可以替换HTML标记中的关键字(例如class、alt)和URL锚定。我该怎么做?我不能使用JavaScript库

编辑:我只想替换第一个匹配和唯一匹配的精确匹配


谢谢

假设您有一个HTML,如:

var text = '<span class="myclass"> span text </span>';
此外,请检查replace的语法:

newstring = str.replace(regexp|substr, newSubStr|function[,   flags]);

Ref:

如果使用DOM方法,可以使用replace函数迭代文本节点,而不使用标记标记-

function swapText(node, find, replace){
    var fun= function(n){
        n.data= n.data.replace(find, replace);
    }
    if(node){
        node= node.firstChild;
        while(node!= null){
            if(node.nodeType== 3)fun(node);
            else swapText(node, find, replace);
            node= node.nextSibling;
        }
    }
}

swapText(document.body,/e/g,'e')

是的,正则表达式有效!但是你试过什么?有密码吗?那太好了!正则表达式解析HTML->如果字符串中有一些HTML,最好创建一个临时HTMLElement,并将其innerHTML设置为该字符串。然后操纵新创建元素的文本内容。如果您需要一个HTML作为字符串,请将其从临时元素中取出,或者将该元素附加到页面中。您能告诉我您是如何操作的吗?可以通过在文章中添加代码或提供HTML示例来实现<代码>变量文本='span asd'结果:
WORD asd
我编辑了我的第一篇文章。谢谢,但它取代了URL锚。我只想替换第一场比赛。
function swapText(node, find, replace){
    var fun= function(n){
        n.data= n.data.replace(find, replace);
    }
    if(node){
        node= node.firstChild;
        while(node!= null){
            if(node.nodeType== 3)fun(node);
            else swapText(node, find, replace);
            node= node.nextSibling;
        }
    }
}