通过javascript更改字符串中的复杂值

时间:2016-11-29 01:40:02

标签: javascript

我正在将一个对象转换为一个包含数组的XML字符串,所以我得到了一些结果,如:

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

我怎样才能轻易摆脱这些数字? &℃,GT;等

我正在尝试一个丑陋的解决方案...一些替换工作,如下所示,但无法弄清楚如何插入/ g使其全局

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

RegExp根本不工作!!同样在for循环中尝试

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

谢谢!

2 个答案:

答案 0 :(得分:1)

\d匹配数字,因此可以删除所有带数字

的开始标记
myxmlstring.replace(/<\d>/g, '');

请记住,需要在正则表达式中转义斜杠,以匹配结束版本。

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

最后,使用问号量词来匹配结束斜线零或一次,在一个正则表达式中捕获两种情况。

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

要匹配多个数字(例如10个及以上),请向\ d添加量词。在这种情况下+因为它意味着一次或无限次。

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

答案 1 :(得分:-1)

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

replace函数可以解决正则表达式,你不需要创建RegExp对象,而/d表示数字对象,如0-9和*表示它可以重复多次