js将正则表达式的第一个字母替换为大写

时间:2017-11-03 19:32:54

标签: javascript regex replace

我有像这样的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(),它仍然没有给出正确的结果 - 这用于其他问题,并且对我不起作用。 请帮帮我!

3 个答案:

答案 0 :(得分:1)

您可以使用替换功能:

&#13;
&#13;
var xml = '<abc:content><bcd:position></abc:content>';

var xml2 = xml.replace(/:\w/g, function(matched) {
  return matched.toUpperCase();
});

console.log(xml2);
&#13;
&#13;
&#13;

请记住,在这里使用正则表达式不是一个好主意,因为它也会替换结束后的XML中的任何其他字母:

&#13;
&#13;
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;
&#13;
&#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, '&lt').replace(/\>/g, '&gt');
document.body.appendChild(div);
str = str.replace(/:(\b)./g , function(x){return x.toUpperCase();});
div = document.createElement('div');
div.innerHTML = "Result: " + str.replace(/\</g, '&lt').replace(/\>/g, '&gt');
document.body.appendChild(div);