我正在尝试编写两个函数:
简单的正则表达式(如 \ bkeyword \ b )可以使用,但它会替换HTML标记内的关键字 (例如,类,alt)和网址锚。我该怎么做?我不能使用JavaScript库。
编辑:我想只替换第一场比赛,只匹配完全匹配。
由于
答案 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)
假设你有一个像:
这样的HTMLvar 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