Строковые методы JavaScript
Вы можете использовать строковые методы для работы со строками.
Строковые методы и свойства
Значения без свойств или методов, такие как «John Doe», считаются примитивными (поскольку они не являются объектами). Однако примитивные значения могут использовать методы и свойства JavaScript, поскольку JavaScript интерпретирует примитивные значения как объекты при выполнении методов и свойств.
Длина строки
Атрибут length возвращает длину строки.
```javascript var txt = ‘ABCDEFGHIJKLMNOPQRSTUVWXYZ’; var alpha = txt.length; ```
Поиск строки в строке
Метод indexOf() возвращает позицию первого вхождения предоставленного текста строки. JavaScript начинает считать с нуля. В строке 0 — первое место, 1 — второе, 2 — третье.
…
```javascript var str = “Please locate where ‘locate’ occurs!”; var pos = str.indexOf(‘locate’); ```
Метод lastIndexOf() возвращает индекс последнего вхождения заданного текста в строку:
```javascript var str = “Please locate where ‘locate’ occurs!”; var pos = str.lastIndexOf(‘locate’); ```
Если текст не может быть получен, и indexOf(), и lastIndexOf() возвращают -1. Оба метода принимают второй параметр в качестве отправной точки поиска:
```javascript var str = “Please locate where ‘locate’ occurs!”; var pos = str.indexOf(‘locate’, 15); ```
Метод lastIndexOf() выполняет поиск в обратном направлении (с конца к началу), что означает, что если второй параметр равен 15, поиск начнется с позиции 15 и будет продолжаться до тех пор, пока строка не достигнет начала.
```javascript var str = “Please locate where ‘locate’ occurs!”; var pos = str.lastIndexOf(‘locate’, 15); ```
Поиск строки в строке
Метод search() ищет предоставленное значение в строке и возвращает позицию совпадения.
```javascript var str = “Please locate where ‘locate’ occurs!”; var pos = str.search(‘locate’); ```
Есть ли разница между indexOf() и search()? Они оба принимают одни и те же аргументы (параметры) и дают одинаковый результат, верно? Эти два подхода не эквивалентны. Это отличия:
Второй аргумент начальной позиции нельзя передать методу search().
Метод indexOf() не может обрабатывать большие значения поиска (регулярные выражения).
Извлечение частей строки
Есть три способа удалить часть строки:
- срез (начало, конец)
- подстрока (начало, конец)
- substr(начало, длина)
Метод slice()
slice() берет часть строки и возвращает ее как новую строку. Метод принимает два параметра: начальную и конечную позиции (конец не включен). В этом примере фрагмент строки с позиции 7 на позицию 12 (13–1) обрезается следующим образом:
```javascript var str = ‘Apple, Banana, Kiwi’; var res = str.slice(7, 13); ```
Позиция считается с конца строки, если параметр отрицательный.
Метод подстроки()
substring() похожа на slice(). Разница в том, что substring() не может принимать отрицательные индексы.
```javascript var str = ‘Apple, Banana, Kiwi’; var res = str.substring(7, 13); ```
Если вы опустите второй параметр, substring() удалит остальную часть строки.
Метод substr()
slice() можно сравнить с substr(). Второй вариант, с другой стороны, устанавливает длину извлеченной секции.
```javascript var str = ‘Apple, Banana, Kiwi’; var res = str.substr(7, 6); ```
Результатом res будет:
Банан
Substr() отрезает оставшуюся часть строки, если второй параметр опущен.
```javascript var str = ‘Apple, Banana, Kiwi’; var res = str.substr(7); ```
Результат res будет
Банан, Киви
Если первый параметр отрицательный, позиция считается с конца строки.
```javascript var str = ‘Apple, Banana, Kiwi’; var res = str.substr(-4); ```
Результатом res будет:
киви
Метод concat()
concat() объединяет две или более строк:
```javascript var text1 = ‘Hello’; var text2 = ‘World’; var text3 = text1.concat(‘ ‘, text2); ```
Вместо использования оператора «плюс» вы можете использовать функцию concat(). Эти две линии выполняют одну и ту же функцию.
```javascript var text = ‘Hello’ + ‘ ‘ + ‘World!’; var text = ‘Hello’.concat(‘ ‘, ‘World!’); ```
Новая строка возвращается всеми строковыми функциями. Они никак не изменяют исходную строку.
Строки неизменяемы в соответствии с формальным определением: строки можно только заменять, но не изменять.
Строка.trim()
Метод trim() удаляет пробелы с обеих сторон строки:
```javascript var str = ‘ Hello World! ‘; alert(str.trim()); ```
Если вам нужна поддержка IE 8, вместо этого вы можете использовать replace() с регулярным выражением.
```javascript var str = ‘ Hello World! ‘; alert(str.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, ‘’)); ```
Вы также можете использовать приведенное выше решение для замены, чтобы добавить функцию обрезки в JavaScript String.prototype:
```javascript if (!String.prototype.trim) { String.prototype.trim = function() { return this.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, ‘’); }; } var str = ‘ Hello World! ‘; alert(str.trim()); ```
Извлечение строковых символов
Существует 3 метода извлечения строковых символов:
- charAt(позиция)
- charCodeAt (позиция)
- Метод charAt()
Метод charAt() возвращает символ по указанному индексу (позиции) в строке:
```javascript var str = ‘HELLO WORLD’; str.charAt(0); // returns H ```
Метод charCodeAt()
Юникод символа по определенному индексу в строке возвращается методом charCodeAt(): эта процедура возвращает код UTF-16 (целое число от 0 до 65535).
```javascript var str = ‘HELLO WORLD’; str.charCodeAt(0); // returns 72 ```
Преобразование строки в массив
Метод split() можно использовать для преобразования строки в массив:
Если разделитель не указан, возвращаемый массив будет содержать всю строку с индексом [0].
Возвращаемый массив будет массивом из одиночных символов, если разделителем является "":
```javascript var txt = ‘a,b,c,d,e’; // String txt.split(‘,’); // Split on commas txt.split(‘ ‘); // Split on spaces txt.split(‘|’); // Split on pipe. ```
Ресурсы
Вам могут пригодиться следующие ресурсы:
Что такое Nodejs, Express и когда его следует использовать.
Учебник: Javascript для этого ключевого слова
"Тревога"
"Коробка"
"Кнопка"
"Анимация"
"Карусель"
"Крах"
"Карта"
"Падать"
"Таблица данных"
"Икона"
"Вход"
"Выбор из нескольких вариантов"
"Уведомление"
"Трещать"
"Рейтинг"
"Прогресс"
"Радио"
"Выбирать"
"Выключатель"
"Стол"