2011-11-03 53 views
0

在JavaScript中,如何將包含HTML實體的字符串轉換爲大寫。以字符串 '咖啡館&欄',例如:將包含HTML實體的字符串轉換爲大寫

Cafés & Bars

它需要被轉換爲:

CAFÉS & BARS

如果toUpperCase()使用,它會破壞雙方的實體。如果案文大寫,然後&;之間的文本被小寫,那麼急性E將保持小寫。

在我的特殊情況下,我無法使用text-transform: uppercase風格解決此問題。

+1

解碼實體:HTTP ://stackoverflow.com/questions/1147359/jquery-decode-html-entities –

回答

1
function decodeEntities(string){ 
var elem = document.createElement('div'); 
elem.innerHTML = string; 
return elem.textContent; 
} 

後來乾脆像decodeEntities('Cafés & Bars').toUpperCase(); 但需要注意的是,當你這樣做,你的返回的文本不會CAFÉS & BARS這將是CAFÉ S & BARS

+0

你的方式比我的版本好得多 – david

+0

@david謝謝。您可以使用textContent或innerText來提供瀏覽器不兼容性,這取決於可用的內容。請注意,您實際上不需要追加元素或給它一個id。只需創建它,給它的innerHTML解碼並從創建的元素的引用中獲取它的值。 –

0

我希望在這個小提琴中有足夠的例子來爲你解決問題。僅供參考,你沒有提到你是否使用jQuery,如果你只需要香草JS,我可以更新它。

http://jsfiddle.net/hafichuk/APNWh/

相關問題