Jak przekonwertować znak na kod ASCII za pomocą JavaScript?
Na przykład:
uzyskaj 10 z „\ n”.
javascript
levik
źródło
źródło
Odpowiedzi:
źródło
String.fromCharCode(10)
.0
(wartość pierwszego argumentu) - wystarczy"\n".charCodeAt()
.String.fromCharCode( asciiNumVal )
,stringInstance.charCodeAt( index )
to nie metoda statyczna klasy StringString.prototype.charCodeAt()
potrafi konwertować znaki łańcuchowe na liczby ASCII. Na przykład:W przeciwnym wypadku należy
String.fromCharCode(10)
zamienić liczby na równe znaki ASCII. Ta funkcja może akceptować wiele liczb i łączyć wszystkie znaki, a następnie zwracać ciąg. Przykład:Oto krótkie odniesienie do znaków ASCII:
źródło
C:\> man ascii
dajeBad command or file name
Jeśli masz tylko jeden znak, a nie ciąg, możesz użyć:
pomijając 0 ...
Jest jednak wolniejszy. W obecnej wersji Chrome jest 5 razy wolniejszy.
źródło
Podczas gdy inne odpowiedzi są prawidłowe, wolę ten sposób:
Następnie, aby go użyć, po prostu:
Używam tego do małego systemu skrótów:
Możesz nawet użyć go wewnątrz mapy () lub innych metod:
źródło
const ascii = a => a.charCodeAt(0);
Dla tych, którzy chcą uzyskać sumę wszystkich kodów ASCII dla ciągu:
Lub ES6:
źródło
[...'Foobar'].reduce((i,s)=>s.charCodeAt(0)+i,0)
JavaScript przechowuje ciągi jako
UTF-16
(dwubajtowe), więc jeśli chcesz zignorować drugi bajt, po prostu usuń go za pomocą&
operatora bitowego0000000011111111
(tj. 255):źródło
Aby zapewnić pełną obsługę i odwracalność Unicode, rozważ użycie:
Zapewni to, że podczas testowania znaków przekraczających limit UTF-16 otrzymasz ich prawdziwą wartość punktową kodu.
na przykład
źródło
Możesz wpisać znak i uzyskać kod Ascii za pomocą tego kodu
Na przykład wprowadź znak typu A You Get Ascii Code 65
źródło
Do obsługi wszystkich UTF-16 (także znaków innych niż BMP / uzupełniających ) z ES6 dostępna jest metoda string.codePointAt () ;
Ta metoda jest ulepszoną wersją charCodeAt, która może obsługiwać tylko punkty kodowe Unicode <65536 (2 16 - pojedynczy 16 bitów).
źródło
String.prototype.codePointAt()
jest obsługiwany przez żadną wersję programu Internet Explorer . (Jednak jest ona obsługiwana przez Edge.) Można uzyskać PolyFill tutaj .