我正在将一个对象转换为一个包含数组的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, "");
谢谢!
答案 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和*
表示它可以重复多次