Строки JS
Строки необходимы при работе с текстовыми и типографическими элементами на веб-странице. В этой статье познакомимся с основными и нестандартными методами для работы со строками в JS. Строки — это последовательность символов в языке JavaScript. Например: Пример строк в Java Script Здесь мы задали переменную Если вы хотите задать строку, то нужно использовать одинарные или двойные кавычки. Возьмем код из предыдущего примера: Пример использования одинарных и двойных кавычек Вместо кавычек из примера можно использовать обратные кавычки. Например: Пример использования обратных кавычек У обратных кавычек есть особенности: Если в строке есть кавычки, то их экранируют с помощью слеша. Это делают для того, чтобы при выводе кавычки были частью строки. В одинарных кавычках экранируют одинарные кавычки. В двойных кавычках экранируют двойные кавычки. Символ слеша Например: Пример использования слеша для экранирования кавычек Спецсимволы начинаются с обратного слеша – Больше полезных материалов вы найдете на нашем телеграм-канале «Библиотека фронтендера» Интересно, перейти к каналу Вы можете получить длину строки с помощью свойства Например: Пример использования свойства length в Java Script Обратите внимание, что после Получить символ из определенной позиции в строке можно с помощью квадратных скобок Пример доступа к символам в Java Script Строку можно перебрать посимвольно с помощью цикла Пример доступа к символам с помощью цикла for…of в Java Script Если строку создали, то её нельзя изменить: Пример невозможности изменения символов в строках Чтобы изменить строку, можно создать новую строку и присоединить к ней другую строку или её часть: Пример создания новой строки с изменением её части Подстрока – это часть строки. Например, в строке Рассмотрим способы поиска. Ищет подстроку и ее позицию. Синтаксис такой: Пример поиска подстроки методом str.IndexOf в Java Script Чтобы найти все подстроки Поиск подстроки с помощью метода str.IndexOf в JavaScript Метод Пример поиска подстроки методом includes в Java Script Методы Пример поиска подстроки методами startsWith и endsWith Чтобы получить подстроку, можно использовать 3 метода: Метод Синтаксис такой: Например: Пример получения подстроки методом substring в Java Script В этом методе начало строки можно задать большим числом, нежели конец строки. Тогда метод сам поменяет числа местами и вернет правильное значение подстроки: Пример получения подстроки методом substring в Java Script Метод Пример получения подстроки методом substr в Java Script Значение Пример получения подстроки методом substr в Java Script Метод Пример получения подстроки методом slice в Java Script Если последний аргумент не указан, то подстрока возвращается с указанного до последнего символа. Когда в качестве аргументов подстроки передаются отрицательные числа, то порядок элементов строки отсчитывается справа налево: Пример получения подстроки методом slice в Java Script Строки сравниваются посимвольно в алфавитном порядке. Алгоритм сравнения двух строк такой: Например: Сравнение строк в Java Script Сравнение Строки Сравнение заканчивается. Первая строка больше. В некоторых случаях удобно сравнивать не посимвольно, а в кодировке UTF-8. Для этого используют метод Пример сравнения символов методом codePointAt Метод Пример создания символа методом fromCodePoint При правильном сравнении можно сравнивать строки из разных языков. Например: Для этого используют метод Например: Пример сравнения строк методом localeCompare в Java Script Буквы в европейских языках представлены в виде 2-х байтовых символов. Всего в таком виде можно представить 65536 комбинаций символов. Поэтому редкие символы кодируются не одним символом, а парой символов. Помните, что смайлик мы можем сделать с помощью двух символов: двоеточия и скобки? 🙂 Такие символы называют суррогатной парой и их длина равна Например: Суррогатные пары в Java Script Суррогатные пары можно обнаружить по их кодам. В диапазоне Например: Пример получения кода суррогатной пары в Java Script В некоторых языках: немецком, шведском, венгерском, турецком есть диакритические символы. Например буква Чтобы работать с диакритическими знаками в языке JavaScript, используют специальные символы. Например, чтобы добавить сверху буквы Пример получения диакритического знака в Java Script Чтобы сравнить диакритические знаки используют метод Пример сравнения диакритических знаков с помощью метода normalize() в Java Script Если этот метод не использовать, то при сравнении одинаковых символов мы увидим Пример сравнения диакритических знаков без метода normalize() в Java Script Создает закладку с Пример использования метода anchor в Java Script Заключает строку в теги Пример использования метода big в Java Script Заключает строку в теги Пример использования метода blink в Java Script Заключает строку в теги Пример использования метода bold в Java Script Метод возвращает какой-либо символ строки из указанной позиции: Пример использования метода charAt в Java Script Метод возвращает код Юникода в определенной позиции: Пример использования метода charCodeAt в Java Script Метод соединяет строки: Пример использования метода concat в Java Script Метод заключает строку в теги Пример использования метода fixed в Java Script Метод помещает строку в тег Пример использования метода fontcolor в Java Script Метод помещает строку в тег Пример использования метода fontsize в Java Script Метод создает новую строку из символов по коду из Юникод: Пример использования метода fromCharCode в Java Script Метод возвращает первую позицию подстроки: Пример использования метода indexOf в Java Script Метод помещает строку в теги Пример использования метода italics в Java Script Метод возвращает позицию указанной подстроки: Пример использования метода lastIndexOf в Java Script Метод помещает строку в теги Пример использования метода link в Java Script Метод сравнивает две строки и возвращает: Например: Пример использования метода localeCompare в Java Script Метод сопоставляет строковое значение и значение метода. Возвращает совпадение строки и значение, которое указано в скобках: Пример использования метода match в Java Script Метод сопоставляет выражение строки и меняет его на указанное: Пример использования метода replace в Java Script Сопоставляет выражение в скобках и строку. В результате получается позиция первого элемента подстроки: Пример использования метода search в Java Script Метод помещает строку в теги Пример использования метода small в Java Script Метод помещает строку в теги Пример использования метода strike в Java Script Метод разбивает строку на массив подстрок с помощью указанного разделителя: Пример использования метода split в Java Script В скобках метода указывается разделитель и количество знаков, которые нужно вывести при разделении: Пример использования метода split в Java Script Метод заключает строку в теги Пример использования метода sub в Java Script Метод заключает строку в теги Пример использования метода sup в Java Script Метод возвращает строчные буквы: Пример использования метода toLocaleLowerCase в Java Script Метод возвращает прописные буквы: Пример использования метода toLocaleUpperCase в Java Script Метод заменяет все буквы исходной строки на строчные: Пример использования метода toLowerCase в Java Script Метод возвращает исходное значение строки: Пример использования метода toString в Java Script Метод меняет символы строки на прописные: Пример использования метода toUpperCase в Java Script Метод возвращает значение строки: Пример использования метода valueOf в Java Script *** В этой статье мы:
const a = 'lorem ipsum'; var b = "съешь ещё этих мягких французских булок, да выпей чаю";
a
и присвоили ей текстовое значение lorem ipsum
, а переменной b
присвоили значение съешь ещё этих мягких французских булок, да выпей чаю
.Кавычки
const a = 'lorem ipsum';//одинарные кавычки var b = "съешь ещё этих мягких французских булок, да выпей чаю";//двойные кавычки
var b = `съешь ещё этих мягких французских булок, да выпей чаю`;//обратные кавычки
${}
.`string`
. тоже экранируется.
var str = "I'm a JavaScript "programmer" "; alert( str ); // I'm a JavaScript "programmer" var str = ' символ \ '; alert( str ); // символ
Спецсимволы
. И каждый имеет свое предназначение. Рассмотрим их.
Спецсимвол
Описание
n
Перевод строки
‘, «
Кавычки
t
Табуляция
xXX
Символ в Юникоде, например: u00A9 — то же самое, что ©
uXXXX
Символ в UTF-8, например: u00A9 — то же самое, что ©
Длина строки length
length
.
var str = 'lorem ipsum'.length;// получается 11, знак пробела тоже считается
length
нет скобок. Скобки используют при работе с числовыми значениями. Доступ к символам
[ ]
:
var str = 'lorem ipsum'; console.log(str[0]);//выведет l console.log(str[100]);//выведет undefined, потому что в позиции 100 нет символов
for…of
, который мы используем для перебора массива:
for (let char of "lorem ipsum") { console.log(char); };
Строки неизменяемы
let str = 'lorem ipsum'; str[0] = 'L'; // команда не работает, потому что мы попытались на место первого символа вставит другой console.log( str[0] ); // l
let str = 'ok';// Имеем строку str = 'O' + str[1]; // Создаем новую строку `O` и присоединяем к ней второй символ из строки str console.log( str ); // Ok
Поиск подстроки
'lorem ipsum'
можно найти две подстроки: 'lorem'
и 'ipsum'
, а можно найти две подстроки 'm'
.Метод str.indexOf
str.indexOf(substr, pos)
. Substr
— подстрока, pos
— позиция строки.Pos
принимает значение позиции, на которой находится подстрока или значение — 1
, если подстроки нет:
let str = 'lorem ipsum'; console.log(str.indexOf('sum'));//начинается с позиции 8 console.log(str.indexOf('Sum'));//— 1 console.log(str.indexOf('m'));//на позиции 4
'm'
в строке 'lorem ipsum'
, используют цикл:
let str = 'lorem ipsum'; let target = 'm'; // цель поиска let pos = 0; while (true) { let foundPos = str.indexOf(target, pos); if (foundPos == — 1) break; alert( `Искомая подстрока на позиции: ${foundPos}` ); pos = foundPos + 1; // продолжаем со следующей позиции };
Методы includes, startsWith, endsWith
includes
возвращает true
, если подстрока есть и false
, если подстроки нет:
let str = 'lorem ipsum'; console.log( str.includes("m") ); // true console.log( str.includes("v") ); // false
startsWith
и endsWith
определяют, начинается или и заканчивается строка определённой подстрокой:
let str = 'lorem ipsum'; console.log( str.startsWith("lo") ); // true console.log( str.endsWith("un") ); // false
Получение подстроки
substring
, substr
и slice
.substring
используют, чтобы получить подстроку. Её конец и начало определяются индексами, которые указывают в скобках. str.substring(start [, end])
, где start
— начальное значение строки, end
— конечное значение строки и в подстроку не включается.
let str = 'lorem ipsum'; console.log( str.substring(0, 4) );\lore 0 — l, 1 — o, 2 — r, 3 — e, 4 — хоть и обозначается в коде, но значение строки не возвращает.
let str = 'lorem ipsum'; // для substring эти два примера — одинаковы console.log( str.substring(0, 4) ); // lore первое и последнее значение может быть указан в любом порядке console.log( str.substring(4, 0) ); // lore первое и последнее значение может быть указан в любом порядке
substr
возвращает подстроку от начального значения — start
, до определенной длины length
. Синтаксис такой: str.substr(start, length)
. Например:
let str = 'lorem ipsum'; console.log( str.substr(2, 5) ); // rem i
start
может быть отрицательными. Тогда позиция подстроки определяется справа. Например:
let str = 'lorem ipsum'; console.log( str.substr(-4, 3) ); // psu
slice
используют как метод substring
. Начальное и конечное значение подстроки задается точно также. Синтаксис такой: str.slice(start,end)
, end
— не включается. Например:
let str = 'lorem ipsum'; console.log( str.slice(0, 4) ); // lore console.log( str.substring(1) ); // orem ipsum
let str = 'lorem ipsum'; console.log( str.slice(-4, -1) ); // psu
Сравнение строк
alert( 'Я' > 'А' ); // true alert( 'Коты' > 'Кода' ); // true
'Я'
> 'А'
завершится на первом шаге. 'Коты'
и 'Кода'
будут сравниваться посимвольно:'К'
равна 'К'
.'о'
равна 'о'
.'т'
больше, чем 'д'
. codePointAt
. Синтаксис такой: str.codePointAt(pos)
. Например, символы 'A'
и 'a'
будут иметь разное значение в UTF-8.
alert( "a".codePointAt(0) ); // 97 alert( "A".codePointAt(0) ); // 65 alert(`a`>`A`);//true
fromCodePoint
создает символ по его коду. Синтаксис такой: String.fromCodePoint(code)
. Например:
alert( String.fromCodePoint(97) ); // a
Правильное сравнение
'Österreich'
— немецкий языки 'Zealand'
— английский язык.localeCompare
. Этот метод возвращает:str1
меньше str2
.str1
больше str2
.0
, если строки равны.
alert( 'Österreich'.localeCompare('Zealand') ); // -1, 'Österreich' — str1, 'Zealand' — str2 alert('Zealand'.localeCompare('Österreich') ); // 1, 'Zealand' — str1, 'Österreich' — str2 alert('Österreich'.localeCompare('Österreich') ); // 0
Как всё устроено, Юникод
Суррогатные пары
2
.
alert( '😂'.length );//2 //Части суррогатной пары не имеют смысла, поэтому они будут определяться, как неизвестные символы. alert( '😂'[0] ); // � alert( '😂'[1] ); // �
0xd800..0xdbff
— можно обнаружить первый символ, в диапазоне 0xdc00..0xdfff
— второй символ.
alert( '😂'.charCodeAt(0).toString(16) ); //получить код со значением 0 в 16-тиричной системе: d83d alert( '😂'.charCodeAt(1).toString(16) ); //получить код со значением 0 в 16-тиричной системе: de02
Диакритические знаки и нормализация
`a`
служит основой для диакритических символов àáâäãåā
.`a`
точку, используют символ u0307
.
alert( 'Su0307' );ȧ
normalize()
. Синтаксис такой: str.normalize()
:
alert( "Su0307u0323".normalize() == "Su0323u0307".normalize() );//true
false
:
alert( "Su0307u0323" == "Su0323u0307" );//false
Нестандартные методы объекта String
Метод anchor
name
и заключает ее в теги <a>...</a>
:
let str = 'lorem ipsum'.anchor('Закладка'); alert(str);
Метод big
<big>...</big>
:
let str = 'lorem ipsum'.big(); document.write(str);
Метод blink
<blink>…</blink>
. Строка между этими тегами мигает. Метод поддерживается браузерами Netscape и WebTV. Например:
let str = 'lorem ipsum'.blink(); document.write(str);
Метод bold
<b>…</b>
. Шрифт строки между ними становится жирным:
let str = 'lorem ipsum'.bold(); document.write(str);
Метод charAt
let str = 'lorem ipsum'.charAt(0);// l document.write(str);
Метод charCodeAt
et str = 'lorem ipsum'.charCodeAt(0);// Код символа `l` в позиции [0] в Юникоде — это 108. document.write(str);
Метод concat
let str = 'lorem ipsum'; document.write(str.concat('dolor sit amet'));//lorem ipsum dolor sit amet
Метод fixed
<tt>…</tt>
. Эти теги отображают строку телетайпным шрифтом:
let str = 'lorem ipsum'.fixed(); document.write(str);
Метод fontcolor
<font color=цвет>…</font>
и окрасит ее в любой цвет:
let str = 'lorem ipsum'.fontcolor('green'); document.write(str);//строка 'lorem ipsum' стала зеленым цвета
Метод fontsize
<font size=`размер`>…</font>
и задаст ее размер:
let str = 'lorem ipsum'.fontsize('20px'); document.write(str);//строка 'lorem ipsum' стала размером 20px
Метод fromCharCode
let str = String.fromCharCode(108,111, 114, 101, 109, 32, 105, 112, 115, 117, 109); document.write(str);//lorem ipsum
Метод indexOf
let str = 'lorem ipsum'.indexOf('l'); document.write(str);//0
Метод italics
<i>...</i>
:
let str = 'lorem ipsum'.italics(); document.write(str);//строка str выводится курсивом
Метод lastIndexOf
let str = 'lorem ipsum'.lastIndexOf('ip'); document.write(str);//6 — позиция, с которой начинается подстрока 'ip'
Метод link
<a href="uri">…</a>
. Строка становится ссылкой:
let str = 'lorem ipsum'.link('https://proglib.io/'); document.write(str);
Метод localeCompare
-1
— строка меньше, 1
— строка больше, 0
— строки равны.
let str1 = 'lorem ipsum'.localeCompare('lorem ipsum'); document.write(str1);//0 let str2 = 'lorem ipsum'.localeCompare('lorem ipsu'); document.write(str2);//1 let str3 = 'lorem ipsum'.localeCompare('lorem ipsum dolor sit amet'); document.write(str3);//-1
Метод match
let str = 'lorem ipsum'.match('lor'); document.write(str);/ часть переменной srt 'lor' совпало со значением метода match('lor').
Метод replace
let str = 'lorem ipsum'.replace('lor', 'dol'); document.write(str);//Метод нашел в строке подстроку 'lor', и заменил на 'dol', получилось — dolem ipsum
Метод search
let str = 'lorem ipsum'.search('or'); document.write(str);//1
Метод small
<small>...</small>
:
let str = 'lorem ipsum'.small(); document.write(str);//строка на экране будет выглядеть меньше
Метод strike
<strike>...</strike>
:
let str = 'lorem ipsum'.strike(); document.write(str);
Метод split
let str = 'lorem ipsum'.split(' '); document.write(str);//l,o,r,e,m, ,i,p,s,u,m
et str = 'lorem ipsum'.split('', 3); document.write(str);//l,o,r — метод разбил строку на символы с помощью запятой и вывел три знака
Метод sub
<sub>...</sub>
:
let str = 'lorem ipsum'.sub(); document.write(str);
Метод sup
<sup>...</sup>
:
let str = 'lorem ipsum'.sup(); document.write(str);
Метод toLocaleLowerCase
let str = 'LOREM IPSUM'.toLocaleLowerCase(); document.write(str);
Метод toLocaleUpperCase
let str = 'lorem ipsum'.toLocaleUpperCase(); document.write(str);//LOREM IPSUM
Метод toLowerCase
let str = 'Lorem ipSum'.toLowerCase(); document.write(str);//lorem ipsum
Метод toString
let str = 'Lorem ipSum'.toString(); document.write(str);//Lorem ipSum
Метод toUpperCase
let str = 'Lorem ipSum'.toUpperCase(); document.write(str);//LOREM IPSUM
Метод valueOf
let str = 'Lorem ipSum'.valueOf(); document.write(str);//Lorem ipSum
Материалы по теме
- 2 views
- 0 Comment