我有像这样的XML内容
<abc:content><bcd:position>Just text: node not need to replace</abc:content>
我需要用
替换它<abc:Content><bcd:Position>Just text: node not need to replace</abc:Content>
在SublimeText或Notepad ++中我可以用正则表达式替换它,如果我搜索
:. or :\b(\w) or :\b.
并将其替换为
:\U$1
工作正常。但我不能使用
string.replace(/:\b./g , ':\U$1');
这不正常!如果我尝试使用&#39;:$ 1&#39; .toUpperCase(),它仍然没有给出正确的结果 - 这用于其他问题,并且对我不起作用。 请帮帮我!
答案 0 :(得分:1)
您可以使用替换功能:
var xml = '<abc:content><bcd:position></abc:content>';
var xml2 = xml.replace(/:\w/g, function(matched) {
return matched.toUpperCase();
});
console.log(xml2);
&#13;
请记住,在这里使用正则表达式不是一个好主意,因为它也会替换结束后的XML中的任何其他字母:
var xml = '<abc:content><bcd:position>Just text:node not need to replace</bcd:position></abc:content>';
var xml2 = xml.replace(/:\w/g, function(matched) {
return matched.toUpperCase();
});
console.log(xml2);
&#13;
答案 1 :(得分:0)
您可以使用函数回调进行替换,如下所示:
var js = '<abc:content><bcd:position></abc:content>';
js.replace(/:(\w)/g, function(c) { return c.toUpperCase() });
//"<abc:Content><bcd:Position></abc:Content>"
答案 2 :(得分:0)
var str = "<abc:content><bcd:position></abc:content>";
var div = document.createElement('div');
div.innerHTML = "Source: " + str.replace(/\</g, '<').replace(/\>/g, '>');
document.body.appendChild(div);
str = str.replace(/:(\b)./g , function(x){return x.toUpperCase();});
div = document.createElement('div');
div.innerHTML = "Result: " + str.replace(/\</g, '<').replace(/\>/g, '>');
document.body.appendChild(div);