在HTML中测试和替换关键字

时间:2013-11-30 17:49:50

标签: javascript regex replace

我正在尝试编写两个函数:

  • 第一个方法测试字符串中的匹配(例如 test()
  • 第二种方法取代关键字

简单的正则表达式(如 \ bkeyword \ b )可以使用,但它会替换HTML标记内的关键字 (例如,类,alt)和网址锚。我该怎么做?我不能使用JavaScript库。

编辑:我想只替换第一场比赛,只匹配完全匹配。

由于

2 个答案:

答案 0 :(得分:1)

如果使用DOM方法,可以使用替换函数遍历文本节点,不要使用标记标记 -

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');

答案 1 :(得分:0)

假设你有一个像:

这样的HTML
var text = '<span class="myclass"> span text </span>';

然后你只需要在html标签之间找到所有文本的出现,你可以使用匿名函数替换它来替换它。

我在这里使用WORD代替span

var result = text.replace(/<[^>]+>|(span)/g, function(p1, p2) { 
     return ((p2==undefined)||p2=='')?p1:"WORD"; 
}); 

console.log(result)

另外,请检查replace:

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

参考:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace