2016-04-01 11 views

cevap

1

Böyle kömürün noktası ve onaltılık değerleri hem alabilirsiniz:

$('#doIt').click(function() { 
 
    $('#outputHex').html($('#inputText').val().codePointAt(0).toString(16)); 
 
    $('#outputString').html('&#x' + $('#inputText').val().codePointAt(0).toString(16) + ';'); 
 
    $('#outputChar').html('&#x' + $('#inputText').val().codePointAt(0).toString(16) + ';'); 
 
});
code { 
 
    display: block; 
 
    padding: 4px; 
 
    background-color: #EFEFEF; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<textarea id="inputText"></textarea> 
 
<button id="doIt">do it</button> 
 

 
<h3>result</h3> 
 
<code id="outputHex"></code> 
 
<code id="outputString"></code> 
 
<code id="outputChar"></code>

Bir tane daha:

İşte
var codePoint = ''.codePointAt(0); //codePoint = 134069 
var hexValue = ''.codePointAt(0).toString(16); //hexValue = 20bb5 
var htmlEscape = '&#x' + hexValue + ';'; //htmlEscape = &#x20bb5; 

çalışan bir örnektir Bir şey, codePointAt bir ES6 işlevi ve eski tarayıcılarda desteklenmiyor. tarayıcı blokları durumda burada çalışmasını kodu: & HTML öğeleri İşte

+0

Bu iyi bir fikirdir, ancak bunun tüm HTML varlıkları için çalıştığını düşünmüyorum (yani '&' daha karmaşıktır)? – Startec

+0

Hayır. Bu, herhangi bir karakter için çalışmalıdır. Kısayollar, yani & gibi özel karakterler var, ancak bu da işe yarayacak. Cevabımı JFiddle örneğiyle güncelleyeceğim. – Gremash

2

JSFiddle Example olmayan tüm ASCII7 karakterleri dönüştüren bir fonksiyondur ve <, >:

function htmlEntities(s) { 
 
    return Array.from(s).map(function (c) { 
 
     return c.codePointAt(0) < 128 && '<&>'.indexOf(c) == -1 
 
      ? c 
 
      : '&#x' + c.codePointAt(0).toString(16) + ';'; 
 
    }).join(''); 
 
} 
 

 
var s = 'This is \u{20BB5}, a special character & encoded in HTML.'; 
 
document.body.innerHTML = htmlEntities(s);

Javascript dizelerinde, genişletilmiş unicode karakterlerin iki karakter olarak sayıldığını unutmayın (örneğin, length). Array.from, [...s] gibi ES6 yapıları, doğru parçaları aldığınızdan emin olun.

İlgili konular