Javascript вывести коды символов

charCodeAt

Юникодное значение от 0 до 1,114,111. Первые 128 значений Unicode совпадают с кодировкой ASCII.

Заметим, что charCodeAt() всегда возвращает значение, меньшее 65536. Это — из за того, что более высокие юникод-символы представлены парой вспомогательных псевдо-символов, которые вместе составляют реальный символ.

Из-за этого, чтобы получить полный символ для символов, юникод-значение которых больше или равно 65536, необходимо получить не только charCodeAt(0) , но и charCodeAt(1) (как для строки из двух букв).

function fixedCharCodeAt (str, idx) < var code = str.charCodeAt(idx); if (0xD800 if (0xDC00 return code; > alert(fixedCharCodeAt ('\uD800\uDC00', 0)); // 65536 alert(fixedCharCodeAt ('\uD800\uDC00', 1)); // 65536

charCodeAt() возвращает NaN, если указанный индекс меньше нуля или больше/равен длине строки.

// возвратит 65, unicode-код для А "ABC".charCodeAt(0) // 65

Следующий пример предоставляет способ убедиться, что проход по циклу всегда дает целый символ, даже если строка содержит символы за пределами основного многоязычного набора.

var str = 'A\uD800\uDC00Z' // 2 символа // мы могли объявить сложный символ напрямую, // т.к наш javascript-код имеет кодировку UTF. for (var i=0, chr; i < str.length; i++) < if ((chr = getWholeChar(str, i)) === false) < continue // на позиции i вспомогательный символ >// alert будет последовательно вызван для всех символов alert(chr); > function getWholeChar (str, i) < var code = str.charCodeAt(i); if (0xD800 var next = str.charCodeAt(i+1); if (0xDC00 > next || next > 0xDFFF) < throw 'High surrogate without following low surrogate'; >return str[i]+str[i+1]; > else if (0xDC00 var prev = str.charCodeAt(i-1); if (0xD800 > prev || prev > 0xDBFF) < throw 'Low surrogate without preceding high surrogate'; >return false; > return str[i] // используем обращение к строке как к массиву >

А есль ли какая нибуть противоположность charCodeAt?

Читайте также:  Нет привилегий php my admin

В смысле? Создание строки из кода символа? String.fromCharCode(number);

В коде ошибка со знаками больше-меньше. Суррогатные символы лежат в диапазонах 0xD800 to 0xDBFF и 0xDC00 to 0xDFFF

var ch = «a»; String.fromCharCode(ch.charCodeAt(0) + 1);
«b»

Источник

String.prototype.charCodeAt()

The charCodeAt() method of String values returns an integer between 0 and 65535 representing the UTF-16 code unit at the given index.

charCodeAt() always indexes the string as a sequence of UTF-16 code units, so it may return lone surrogates. To get the full Unicode code point at the given index, use String.prototype.codePointAt() .

Try it

Syntax

Parameters

Zero-based index of the character to be returned. Converted to an integer — undefined is converted to 0.

Return value

An integer between 0 and 65535 representing the UTF-16 code unit value of the character at the specified index . If index is out of range of 0 – str.length — 1 , charCodeAt() returns NaN .

Description

Characters in a string are indexed from left to right. The index of the first character is 0 , and the index of the last character in a string called str is str.length — 1 .

Unicode code points range from 0 to 1114111 ( 0x10FFFF ). charCodeAt() always returns a value that is less than 65536 , because the higher code points are represented by a pair of 16-bit surrogate pseudo-characters. Therefore, in order to get a full character with value greater than 65535 , it is necessary to retrieve not only charCodeAt(i) , but also charCodeAt(i + 1) (as if manipulating a string with two characters), or to use codePointAt(i) instead. For information on Unicode, see UTF-16 characters, Unicode code points, and grapheme clusters.

Examples

Using charCodeAt()

The following example returns 65 , the Unicode value for A.

"ABC".charCodeAt(0); // returns 65 

charCodeAt() may return lone surrogates, which are not valid Unicode characters.

const str = "𠮷𠮾"; console.log(str.charCodeAt(0)); // 55362, or d842, which is not a valid Unicode character console.log(str.charCodeAt(1)); // 57271, or dfb7, which is not a valid Unicode character 

To get the full Unicode code point at the given index, use String.prototype.codePointAt() .

const str = "𠮷𠮾"; console.log(str.codePointAt(0)); // 134071 

Note: Avoid re-implementing codePointAt() using charCodeAt() . The translation from UTF-16 surrogates to Unicode code points is complex, and codePointAt() may be more performant as it directly uses the internal representation of the string. Install a polyfill for codePointAt() if necessary.

Below is a possible algorithm to convert a pair of UTF-16 code units into a Unicode code point, adapted from the Unicode FAQ:

// constants const LEAD_OFFSET = 0xd800 - (0x10000 >> 10); const SURROGATE_OFFSET = 0x10000 - (0xd800  10) - 0xdc00; function utf16ToUnicode(lead, trail)  return (lead  10) + trail + SURROGATE_OFFSET; > function unicodeToUTF16(codePoint)  const lead = LEAD_OFFSET + (codePoint >> 10); const trail = 0xdc00 + (codePoint & 0x3ff); return [lead, trail]; > const str = "𠮷"; console.log(utf16ToUnicode(str.charCodeAt(0), str.charCodeAt(1))); // 134071 console.log(str.codePointAt(0)); // 134071 

Specifications

Browser compatibility

BCD tables only load in the browser

See also

Found a content problem with this page?

This page was last modified on Jul 3, 2023 by MDN contributors.

Your blueprint for a better internet.

Источник

js получить код символа

Для получения кода символа можно использовать метод charCodeAt() . Этот метод возвращает числовое значение Unicode для указанного символа в строке. Например, чтобы получить код символа ‘А’ (русская версия), мы можем написать следующий код:

const str = 'Александр Пушкин'; const code = str.charCodeAt(0); // код символа 'А' console.log(code); // выведет 1040 

В этом примере мы создали константу str , содержащую строку «Александр Пушкин», и затем использовали метод charCodeAt() для получения кода символа ‘А’, который является первым символом в строке. Полученное числовое значение 1040 является кодом символа ‘А’ в кодировке Unicode.

Что касается термина Unicode, то это стандарт кодирования текста, который используется для представления символов и письменности всех языков мира. Каждому символу в Unicode сопоставлен свой уникальный код, который состоит из одного или нескольких битов. Этот код может быть использован для представления какого-то символа в виде числа в компьютере. Благодаря стандартной кодировке Unicode, символы из разных языков могут быть корректно отображены на любом компьютере или устройстве.

Источник

Строки

Перед изучением работы со строками ещё раз напомню, что строка всегда пишется в кавычках. Для примера создадим переменную, назовём её srt и присвоим ей строку. В дальнейшем мы будем работать с ней.

let str = 'Эта переменная содержит строку';

В JavaScript строки — это объекты. Эти объекты имеют стандартные свойства и методы, с помощью которых можно получить о строке определённую информацию и произвести с ней какие-то действия.

Длина строки

Свойство length содержит длину строки.

Узнаем длину строки, и выведем её в консоль:

При определении длины строки нужно учитывать, что пробелы и различные знаки — это тоже часть строки. Каждый из них является отдельным символом. Запустите страницу и откройте консоль браузера. В ней должно быть написано число 30, если Вы создали точно такую же строку, как в примере.

Сложение строк

Строки можно складывать. В результате сложения получается строка состоящая из складываемых строк. Пример:

let newStr = 'Строка ' + 'из нескольких ' + 'слов';

При сложении строк нужно обеспечить наличие пробелов между словами. Если складываются переменные, то можно между ними добавить строку, состоящую из пробела.

ВАЖНО: В коде скрипта нельзя делать перевод строки внутри строк. Если нужно написать длинную строку, то её можно разделить на несколько строк. Пример:

let big = 'Длинный текст, ' + 'занимающий в коде скрипта ' + 'несколько строк';

Получение подстроки

Подстрока — это часть строки. Это может быть один символ или вся строка или любая другая часть строки. Она может начинаться и заканчиваться в середине слова. Подстрока — это тоже строка. Её можно записать в какую-то переменную и работать с ней.

Самый простой метод для получения подстроки: charAt() . Он возвращает один символ с указанным порядковым номером. Учитывайте, что счёт символов начинается не с 1, а с 0.

строка.charAt(порядковый номер символа)

Для примера, найдём восьмой символ нашей строки:

Есть ещё один способ получить символ по порядковому номеру. Строка рассматривается не только как объект, но и как массив. Символы — это элементы массива. Получив конкретный элемент массива, мы узнаём символ, который в нём содержится. Найдём тот же символ, который мы находили с помощью метода charAt() , но указанным способом:

Метод slice() возвращает подстроку, которая начинается с одного указанного символа и заканчивается другим указанным символом.

строка.slice (начальный символ, конечный символ)

начальный символ — номер символа, с которого начинается подстрока.

конечный символ — необязательный параметр. Номер символа, на котором заканчивается подстрока. Если не указать, то метод вернёт подстроку до конца строки.

Сам конечный символ не входит в подстроку. То есть, если указать 15 символ, то подстрока будет до 14 символа.

console.log(str.slice(4,23)); console.log(str.slice(4));

Если в параметрах указать отрицательные значения, то отсчёт будет производиться не с начала строки, а с конца. Это можно делать как для первого параметра так и для второго. Это очень удобно при работе с большими строками. Пример:

console.log(str.slice(-6)); console.log(str.slice(4, -2));

Метод substr() также возвращает подстроку, начиная с указанного символа. Но второй параметр — это длинна подстроки.

строка.substr (начальный символ, длинна)

начальный символ — номер символа, с которого начинается подстрока.

длинна — Необязательный параметр. Длинна подстроки. Если не указать, то берётся подстрока до конца строки

Выведем подстроку, начиная с 4 символа, длинной 10 символов:

Существует метод substring() , который работает точно так же, как slice() . Отличие его в том, что он не остчитывает символы с конца строки.

Метод indexOf() осуществляет поиск подстроки и возвращает номер первого символа найденной подстроки. Если она не найдена, то возвращает число -1.

строка.indexOf (подстрока, начало поиска)

подстрока — искомая подстрока.

начало поиска — Необязательный параметр. Номер символа, с которого начинается поиск подстроки. Используется, если нужно провести поиск не во всей строке, а начиная с какого-то символа.

let word = 'Предложение состоит из нескольких слов'; console.log(word.indexOf('нескольких')); console.log(newstr.indexOf('текст'));

В первом вызове метод indexOf() вернёт число 23. Это значит, что подстрока начинается с 23 символа.

В во втором вызове метод вернёт число -1, потому что слова «текст» нет в переменной.

Метод indexOf() учитывает регистр символов. Если попытаться найти подстроку «Слов», то метод её не найдёт.

Если подстрока встречается несколько раз, то indexOf() найдёт первую. Чтобы найти следующую такую подстроку нужно запустить метод ещё раз и начинать поиск не с начала а с символа, следующего за прошлой подстрокой. Таким образом можно найти все вхождения подстроки, если запустить метод indexOf() в цикле. Этот цикл должен заканчиваться, когда метод вернёт -1.

Есть метод lastIndexOf , который работает так же как indexOf() , только производит поиск с конца строки.

Замена подстроки

Метод replace() находит подстроку и заменяет её на другую. Он возвращает новую строку, а исходная остаётся неизменной.

строка.replace (заменяемая подстрока, новая подстрока)

let inf = 'На улице шёл снег'; let changeInf = inf.replace('снег', 'дождь'); console.log(changeInf);

В первом параметре метода replace() можно написать регулярное выражение. При этом метод работает по-другому. Главное отличие состоит в количестве замен. Если указана подстрока, то будет заменено только первое совпадение. А при регулярном выражении можно заменить все совпадения. В этом учебнике есть глава «Регулярные выражения», где Вы можете научиться использовать эту возможность.

В новую подстроку можно добавить старую подстроку. Есть и другие варианты вставки. Для этого во втором параметре метода replace() нужно написать специальный код. Этот код указывает, что нужно вставить. Варианты перечислены в таблице.

Код Значение
$& Заменяемая подстрока
$` Весь текст до заменяемой подстроки
$’ Весь текст после заменяемой подстроки
$1, $2, и т.д. Части паттерна, содержащиеся в скобках, в регулярном выражении

Код может находиться в любой части текста во втором парамете replace() . Знак $ является для этого метода спецсимволом. Для вставки самого этого знака нужно написать так: $$.

console.log(inf.replace('снег', 'небольшой $&'));

В данном примере от вставки мало пользы, можно просто написать «небольшой снег». Но с регулярными выражениями она бывает очень полезна.

Коды символов

В JavaScript применяется кодировка Unicode. Каждый символ имеет свой код в виде числа. Для букв коды идут по порядку в соответствии с алфавитом. У буквы «a» код 97, у буквы «b» — 98, у буквы «с» — 99, у буквы «d» — 100 и так далее.

Метод charCodeAt() возвращает код символа.

символ — порядковый номер символа в строке.

Источник

Оцените статью