簡體   English   中英

將包含 HTML 個實體的字符串轉換為大寫

[英]Convert a string containing HTML entities to uppercase

在JavaScript中,如何將包含HTML實體的字符串轉換為大寫。 以字符串 'Cafés & Bars' 為例:

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這將是咖啡館及酒吧

如果您可以控制文本表示,則可以使用(或將文本命名實體轉換為)十進制 HTML 實體; 它們不會轉換為大寫,因為數字只有一種情況。

所以:

而不是& 使用&
而不是< 使用&#60
而不是" 使用"

等等

我希望這個小提琴中有足夠的示例為您解決問題。 僅供參考,您沒有提及是否使用jQuery,如果您只需要普通JS,我可以進行更新。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM