0

我想用字符串替换每次出现的数字:???

这是一个示例字符串:

<em>Chelsea</em> 1-4 Atletico Madrid

如何在 JavaScript 中做到这一点?

    <a href="https://www.google.com/url?sa=t&amp;source=web&amp;cd=9&amp;cad=rja&amp;ved=0CFEQtwIwCA&amp;url=http%3A%2F%2Fwww.whoateallthepies.tv%2Fchelsea%2F137070%2Fsuper-cup-chelsea-1-4-atletico-madrid-falcao-on-fire-as-blues-flop-in-monaco-photos-highlights.html&amp;rct=j&amp;q=chelsea&amp;ei=1odBUImpBIWA0AWM1oC4BA&amp;usg=AFQjCNEwdCCckt15XTkHSAf2fsUnGk9IJg&amp;sig2=IOrD6hfMrviW9ods0DG2dw" class="l" onmousedown="return rwt(this,'','0','','9','AFQjCNEwdCCckt15XTkHSAf2fsUnGk9IJg','IOrD6hfMrviW9ods0DG2dw','0CFEQtwIwCA',null,event)" title="Super Cup: Chelsea 1-4 Atletico Madrid – Falcao On Fire As Blues Flop In Monaco (Photos ...">Super Cup: <em>Chelsea</em> 1-4 Atletico Madrid – Falcao On <b>...</b></a>

提前致谢。

4

2 回答 2

1

所以基本上你只希望文本节点而不是 HTML 内容受到替换的影响。

不幸的是,与函数不同,没有简单的方法来获取文本节点getElementBy*,因此您必须手动搜索:

var elems = document.getElementsByTagName('*'), l = elems.length, i,
    children, m, j;
for( i=0; i<l; i++) {
  children = elems[i].childNodes;
  m = children.length;
  for( j=0; j<m; j++) {
    if( children[j].nodeType == 3) children[j].nodeValue = children[j].nodeValue.replace(/\d+/g,'???');
  }
}
于 2012-09-01T04:59:38.913 回答
0

您只想将所有数字替换为????

var text = "1-4 Atletico Madrid – Falcao On";
var replaced=text.replace(/\d/g, "???");
​alert(​replaced);​

将此作为起点,因为您只想获取文本,而不是其他 html 部分。

于 2012-09-01T05:03:36.087 回答