如何替换字符串的大写字母(和其余单词)

时间:2016-07-08 15:02:03

标签: javascript regex

我正在开发一些javascript,它通过转换器文本将您的javascript代码颜色编码为带有周围span元素的文本。

我想使用<span class="gray"> WordWithCapitalLetterAtBeginning </span>

将任何以大写字母开头的单词变为灰色

Apple()应变为灰色

APPLE应变为灰色

bANANA不应变为灰色

banaNa()不应变为灰色

orange不应变为灰色

我会在javascript中使用正则表达式将字符串replace替换为跨度?

到目前为止,我尝试过:/([A-Z])/g,但这仅用大写字母表示,而不是其余部分。

到目前为止,这是我的js:

function stylifyCode(s)
{
    s=s.replace('var','<span style="color:blue;">var</span>');
    s=s.replace('\n','<br>')
    s=s.replace(/([A-Z])/g, '<span class="gray">$1</span>')

    return s;
}

并在加载页面时:

document.getElementById("mycode").innerHTML = stylifyCode("var hello = 'world!';\nnew Awesome(hello+World())");

谢谢。

2 个答案:

答案 0 :(得分:3)

您的意思是以下内容?

error C2338: invalid template argument for uniform_int_distribution
note: see reference to class template instantiation 'std::uniform_int_distribution<uint8_t>' being compiled
uniform_int_distribution
var input = "This is a Test String with some Words in It.";
var output = input.replace(/\b([A-Z]\w*)\b/g, "<span class='gray'>$1</span>");

console.log(output);
document.getElementById("result").innerHTML = output;

说明:regex .gray { background-color: #CCCCCC; }匹配单词边界,后跟大写字母,后跟零个或多个单词字符,后跟单词边界。

答案 1 :(得分:1)

"new Apple() Test Test, hello".replace(/([A-Z])/g, "<span class='gray'>$1</span>")