在JavaScript中,如何將包含HTML實體的字符串轉換爲大寫。以字符串 '咖啡館&欄',例如:將包含HTML實體的字符串轉換爲大寫
Cafés & Bars
它需要被轉換爲:
CAFÉS & BARS
如果toUpperCase()
使用,它會破壞雙方的實體。如果案文大寫,然後&
和;
之間的文本被小寫,那麼急性E將保持小寫。
在我的特殊情況下,我無法使用text-transform: uppercase
風格解決此問題。
在JavaScript中,如何將包含HTML實體的字符串轉換爲大寫。以字符串 '咖啡館&欄',例如:將包含HTML實體的字符串轉換爲大寫
Cafés & Bars
它需要被轉換爲:
CAFÉS & BARS
如果toUpperCase()
使用,它會破壞雙方的實體。如果案文大寫,然後&
和;
之間的文本被小寫,那麼急性E將保持小寫。
在我的特殊情況下,我無法使用text-transform: uppercase
風格解決此問題。
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
你的方式比我的版本好得多 – david
@david謝謝。您可以使用textContent或innerText來提供瀏覽器不兼容性,這取決於可用的內容。請注意,您實際上不需要追加元素或給它一個id。只需創建它,給它的innerHTML解碼並從創建的元素的引用中獲取它的值。 –
我希望在這個小提琴中有足夠的例子來爲你解決問題。僅供參考,你沒有提到你是否使用jQuery,如果你只需要香草JS,我可以更新它。
解碼實體:HTTP ://stackoverflow.com/questions/1147359/jquery-decode-html-entities –