2016-07-08 105 views
-2

我正在處理一些JavaScript,它將轉換器文本的顏色編碼爲帶有周圍span元素的文本。如何替換字符串的大寫字母(和其餘字)

我想作以大寫字母開頭變成灰色的字,用<span class="gray"> WordWithCapitalLetterAtBeginning </span>

Apple()應該變成灰色

APPLE應該變成灰色

bANANA不應該變成灰色

banaNa()不應變灰

orange不應該變成灰色

我會用字符串replace在JavaScript中使用正則表達式來替換它的跨度?

到目前爲止,我嘗試過:/([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())"); 

謝謝。

+0

你能提供你的HTML嗎?您是否希望此檢查僅針對'span'元素運行? –

+0

@MohitBhardwaj更新了問題。 –

+0

@gcampbell更新了問題。 –

回答

3

你的意思是像下面?

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;
.gray { 
 
    background-color: #CCCCCC; 
 
}
<div id="result"></div>

說明:regex\b([A-Z]\w*)\b一個單詞邊界,其次是一個大寫字母,後跟零個或多個單詞字符,後跟一個單詞邊界匹配。

+0

準確!謝謝。並感謝您的解釋! –

1

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

+0

到達那裏,但我希望整個單詞變成灰色。我已經嘗試過,忘記了包括在我的問題中。 –

相關問題