2012-09-01 28 views
0

我想用字符串:???替換每個出現的數字。使用JavaScript替換類名值

下面是一個例子字符串:

<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> 

在此先感謝。

+1

你的問題並不十分清楚。 – cheeken

回答

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,'???'); 
    } 
} 
+0

我只想替換視頻標題中的所有數字。 https://www.google.com/search?tbm=vid&hl=en&source=hp&biw=1366&bih=557&q=chelsea&btnG=Google+Search&gbv=2&oq=&gs_l=#q=chelsea&hl=en&gbv=2&tbm=vid&source=lnt&tbs= QDR:d&SA = X&EI = HoNBUOudH-ma0QWB0IHoDg&VED = 0CCEQpwUoAg&FP = 1&BIW = 1366&波黑= 558及CAD = b&SEI = zYdBUJTXAeWg0QXkyoDYBQ&BAV = on.2,or.r_gc.r_pw.r_cp.r_qf&SEI = QdRBUPbBIuHT0QW8vYD4BQ 我希望我清楚 – user1515425

0

你只是想???全部更換號碼?

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

以此爲起跳點,因爲你只想要得到的文本,而不是其他的HTML部分。