2015-06-12 50 views
3

對於這樣如何用JavaScript突出顯示小寫字母?

<p> This is an exaMPLe </p> 

如何突出與使用Javascript不同顏色的小寫字母一個段落?

+0

@Hacketo相當新的Javascript,檢查http://stackoverflow.com/questions/8644428/howt o-highlight-text-using-javascript和http://www.the-art-of-web.com/javascript/search-highlight/ – elm

+1

@Hacketo至少需要一些創業想法,因此這個問題;謝謝你問:) :) – elm

+0

iter所有的字母,如果有字母測試[toLowerCase](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/String/toLowerCase)=== letter,那麼將其圍繞一個範圍 – Hacketo

回答

7

這是一個快速和骯髒的解決方案,使用正則表達式查找/替換。

var p = document.querySelector("p"); 
var html = p.innerHTML; 

html = html.replace(/([a-z]+)/g, "<strong>$1</strong>"); 

p.innerHTML = html; 

首先,您會看到段落,閱讀它的內部HTML。然後使用正則表達式來查找小寫字母a-z字母並用strong HTML標記包裝它們。如果您願意,您也可以使用span並應用CSS類。在正則表達式查找/替換後,請將HTML值重新設置。

工作例如:http://jsbin.com/vodevutage/1/edit?html,js,console,output

編輯: 如果你希望有不同的顏色,然後換一條線,如下所示:

html = html.replace(/([a-z]+)/g, "<span class='highlight'>$1</span>"); 

,並定義CSS類,如下所示:

.highlight { 
    background-color: yellow; 
} 
+1

完成:如果要通過給背景顏色突出顯示而不跳過空格,則必須將正則表達式更改爲此'/([az,\ s] +)/ g'。但如果你想排除空格,解決方案是絕對正確的:) – Markai

+1

你的正則表達式也匹配逗號。而且你有兩次空間定義 - 一次是空格,一次是'\ s',它與任何空白字符匹配。如果你只想添加空格,那麼'/([a-z] +)/ g'是要走的路。 – alesc

+0

Woops,是的,你是對的,不知道,謝謝:) – Markai