2016-11-29 92 views
0

我將對象轉換爲包含陣列以及一個XML字符串,所以我得到了一定的成果,如:字符串更改複雜的價值由JavaScript

<some field> 
    <0><other>text</other></0> 
    <1><other>tetx</other></1> 

我怎樣才能輕鬆擺脫這些數字的? < 0>等

我與一個醜陋的解決方案嘗試...一些替代品的工作,像下面,但無法弄清楚如何插入/ G,使其全球

for(i=0; i<10; i++) {  
    xmlAsStr = xmlAsStr.replace('<'+i+'>', ''); 
    xmlAsStr = xmlAsStr.replace('</'+i+'>', "");       
    xmlAsStr = xmlAsStr.replace('<'+i+'/>', "");       
} 

正則表達式不一切工作!也嘗試內循環

var find = '</'+i+'>'; 
var regex = new RegExp(find, "g"); 
xmlAsStr = xmlAsStr.replace(find, ""); 

謝謝!

+1

什麼是生成數字開始?你能阻止它發生嗎? – epascarello

回答

1

\d匹配的數字,所以這將努力消除所有的開放標籤與數字

myxmlstring.replace(/<\d>/g, ''); 

請記住,斜槓需要在正則表達式進行轉義,因此要匹配收盤版本。

myxmlstring.replace(/<\/\d>/, ''); 

最後,用一個問號量詞來匹配結束斜槓零次或一次,在一個單一的正則表達式捕捉這兩種情況。

myxmlstring.replace(<\/?\d>, ''); 

要匹配多個數字(例如10和以上),將量詞添加到\ d as-well。在這種情況下+,因爲它意味着一次或無限次。

myxmlstring.replace(/<\/?\d+>/, ''); 
+0

會失敗,如果它會高到10+。 '替換(/ <\/?\d+> /克,「」)'可能會更好 – epascarello

+0

謝謝,(/ <\/?\d+> /克,「」)做到了!出於好奇,我可以爲<3/>添加規則嗎? –

+0

只需移動斜槓匹配器即可! 在像https://regex101.com這樣的站點上玩這個遊戲,它有右邊角落裏的「口頭」版本。 –

-1
var regexStr = "/<\d*>/g"; 
xmlAsStr.replace(regexStr,""); 

替換功能,可以解決正則表達式,你並不需要創建RegExp對象,並/d平均數對象,如0-9和*意味着它可以重複多次。