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 に答える