САМОСТОЯТЕЛЬНОЕ ОБУЧЕНИЕ ДЛЯ ВЕБ РАЗРАБОТЧИКОВ
×

JS Учебник

JS Главная JS Введение JS Что? Где? Куда? JS Вывод JS Заявления JS Синтаксис JS Комментарии JS Переменные JS Операторы JS Арифметика JS Присваивания JS Типы данных JS Функции JS Объекты JS События JS Строки JS Методы строк JS Числа JS Методы чисел JS Массивы JS Методы массива JS Сортировка массива JS Итерация массива JS Объекты дат JS Формат дат JS Метод получения дат JS Метод набора дат JS Математические... JS Случайные числа JS Булевы JS Сравнение... JS Заявления if...else JS Заявление switch JS Цикл for JS Цикл while JS Заявление break... JS Преобразование... JS Битовые... JS Регулярные выражения JS Ошибки JS Область JS Подъемный JS Строгий JS Ключевое слово this JS Ключевое слово let JS Константы JS Функция стрелки JS Классы JS Отладчик JS Руководство стиля JS Практика JS Распространенные ошибки JS Эффективность JS Зарезервированные слова JS Версии JS Версия ES5 JS Версия ES6 JS Версия 2016 JS Версия 2017 JS JSON

JS Формы

JS Формы JS Формы API

JS Объекты

Определение объекта Свойства объекта Методы объекта Отображение объекта Доступ к объекту Конструкторы объекта Прототипы объекта ES5 Методы объекта

JS Функции

Определение функции Параметры функции Вызов функции Вызвать функцию Применение функции Закрытие функции

JS Прочее

Классы введение Наследование класса Статические методы... JS Обратный вызов JS Асинхронный JS Обещания JS Асинхронный синтаксис

JS HTML DOM

DOM Введение DOM Методы DOM Документы DOM Элементы DOM HTML DOM CSS DOM Анимация DOM События DOM Прослушиватель событий DOM Навигация DOM Узлы DOM Коллекция DOM Список узлов

JS Браузера BOM

JS Window JS Экран JS Расположение JS История JS Навигатор JS Предупреждение JS Синхронизация JS Cookies

JS AJAX

AJAX Введение AJAX XMLHttp AJAX Запрос на сервер AJAX Ответ с сервера AJAX XML Файл AJAX PHP Файл AJAX ASP Файл AJAX База данных AJAX Приложения AJAX Примеры

JS JSON

JSON Введение JSON Синтаксис JSON или XML JSON Типы данных JSON Парсинг JSON Строки JSON Объекты JSON Массивы JSON PHP JSON HTML JSON JSONP

JS Веб API

API - Введение API - История API - Хранилище API - Работник API - Извлечь файл API - Геолокации

JS или jQuery

jQuery HTML Селекторы jQuery HTML Элементы jQuery CSS Стили jQuery HTML DOM

JS Примеры

JS Примеры JS HTML DOM JS HTML Ввода JS HTML Объекты JS HTML События JS Браузер JS Редактор JS Упражнения JS Викторина JS Сертификат

JS Справочник

JavaScript Объекты HTML DOM Объекты


JavaScript Методы строк



Строковые методы помогают работать со строками.


Строковые методы и свойства

Примитивные значения, такие как "Щипунов Андрей", не могут иметь свойств или методов (потому что они не являются объектами).

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


Длина строки

Свойство length возвращает длину строки:

Пример

var txt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var sln = txt.length;
Попробуйте сами »

Поиск строки в строке

Метод indexOf() возвращает индекс (положение) на first вхождения указанного текста в строке:

Пример

var str = "Пожалуйста, найдите, где происходит 'найти'!";
var pos = str.indexOf("найти");
Попробуйте сами »

JavaScript считает позиции с нуля.
0 - первая позиция в строке, 1 - вторая, 2 - третья ...

Метод lastIndexOf() возвращает индекс последнего вхождения указанного текста в строке:

Пример

var str = "Пожалуйста, найдите, где происходит 'найти'!";
var pos = str.lastIndexOf("найти");
Попробуйте сами »

Оба indexOf(), и lastIndexOf() возвращают -1, если текст не найден.

Пример

var str = "Пожалуйста, найдите, где происходит 'найти'!";
var pos = str.lastIndexOf("Щипунов");
Попробуйте сами »

Оба метода принимают второй параметр в качестве начальной позиции для поиска:

Пример

var str = "Пожалуйста, найдите, где происходит 'найти'!";
var pos = str.indexOf("найти", 15);
Попробуйте сами »

Эти lastIndexOf() методы выполняют поиск в обратном направлении (от конца к началу), что означает: если второй параметр равен 15, поиск начинается с позиции 15 и выполняется поиск до начала строки.

Пример

var str = "Пожалуйста, найдите, где происходит 'найти'!";
var pos = str.lastIndexOf("найти", 15);
Попробуйте сами »

Поиск строки в строке

В search() методе ищет строку для указанного значения и возвращает позицию матча:

Пример

var str = "Пожалуйста, найдите, где происходит 'найти'!";
var pos = str.search("найти");
Попробуйте сами »

Ты заметил?

Два метода, indexOf() и search(), равны?

Они принимают одни и те же аргументы (параметры) и возвращают одно и то же значение?

Эти два метода НЕ равны. Вот отличия:

  • Метод search() не может принимать второй аргумент позиции начала.
  • Метод indexOf() не может принимать мощные значения поиска (регулярные выражения).

Вы узнаете больше о регулярных выражениях в следующей главе.



Извлечение строчных частей

Есть 3 метода извлечения части строки:

  • slice(start, end)
  • substring(start, end)
  • substr(start, length)

Метод slice()

Метод slice() извлекает часть строки и возвращает извлеченную часть в новой строке.

Метод принимает 2 параметра: начальную позицию и конечную позицию (конец не включен).

В этом примере часть строки вырезается из позиции 7 в позицию 12 (13-1):

Пример

var str = "Яблоко, Банан, Киви";
var res = str.slice(7, 13);

Результатом res будет:

Банан
Попробуйте сами »

Помните: JavaScript считает позиции с нуля. Первая позиция - 0.

Если параметр отрицательный, позиция отсчитывается от конца строки

В этом примере часть строки вырезается из позиции -12 в позицию -6:

Пример

var str = "Яблоко, Банан, Киви";
var res = str.slice(-12, -6);

Результатом res будет:

Банан
Попробуйте сами »

Если вы опустите второй параметр, метод вырежет остальную часть строки:

Пример

var res = str.slice(7);
Попробуйте сами »

или, считая с конца:

Пример

var res = str.slice(-12);
Попробуйте сами »

Отрицательные позиции не работают в Internet Explorer 8 и ранее.


Метод substring()

Метод substring() похоже на slice().

Разница в том, что substring() не может принимать отрицательные индексы.

Пример

var str = "Яблоко, Банан, Киви";
var res = str.substring(7, 13);

Результатом res будет:

Банан
Попробуйте сами »

Если вы опустите второй параметр, substring() оставшаяся часть строки будет вырезана.


Метод substr()

Метод substr() похоже на slice().

Разница в том, что второй параметр указывает длину извлеченной части.

Пример

var str = "Яблоко, Банан, Киви";
var res = str.substr(7, 6);

Результатом res будет:

Банан
Попробуйте сами »

Если вы опустите второй параметр, substr() оставшаяся часть строки будет вырезана.

Пример

var str = "Яблоко, Банан, Киви";
var res = str.substr(7);

Результатом res будет:

Банан, Киви
Попробуйте сами »

Если первый параметр отрицательный, позиция отсчитывается от конца строки.

Пример

var str = "Яблоко, Банан, Киви";
var res = str.substr(-4);

Результатом res будет:

Киви
Попробуйте сами »

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

Метод replace() заменяет указанное значение с другим значением в строке:

Пример

str = "Пожалуйста, посетите Microsoft!";
var n = str.replace("Microsoft", "Schoolsw3");
Попробуйте сами »

Метод replace() не изменяет строку она вызвана. Он возвращает новую строку.

По умолчанию replace() метод заменяет только первое совпадение:

Пример

str = "Пожалуйста, посетите Microsoft и Microsoft!";
var n = str.replace("Microsoft", "Schoolsw3");

Попробуйте сами »

По умолчанию replace() метод чувствителен к регистру. Записать MICROSOFT (в верхнем регистре) не получится:

Пример

str = "Пожалуйста, посетите Microsoft!";
var n = str.replace("MICROSOFT", "Schoolsw3");

Попробуйте сами »

Чтобы заменить нечувствительность к регистру, используйте регулярное выражение с /i флагом (нечувствительность):

Пример

str = "Пожалуйста, посетите Microsoft!";
var n = str.replace(/MICROSOFT/i, "Schoolsw3");

Попробуйте сами »

Обратите внимание, что регулярные выражения пишутся без кавычек.

Чтобы заменить все совпадения, используйте регулярное выражение с /g флагом (глобальное совпадение):

Пример

str = "Пожалуйста, посетите Microsoft и Microsoft!";
var n = str.replace(/Microsoft/g, "Schoolsw3");

Попробуйте сами »

Вы узнаете намного больше о регулярных выражениях в главе Регулярные выражения JavaScript.


Преобразование в верхний и нижний регистр

Строка преобразуется в верхний регистр с помощью toUpperCase():

Пример

var text1 = "Привет, мир!";       // Строка
var text2 = text1.toUpperCase();  // text2 к text1, преобразованный в верхний
Попробуйте сами »

Строка преобразуется в нижний регистр с помощью toLowerCase():

Пример

var text1 = "Привет, мир!";       // Строка
var text2 = text1.toLowerCase();  // text2 к text1, преобразованный в нижний
Попробуйте сами »

Метод concat()

Метод concat() объединяет две или более строк:

Пример

var text1 = "Привет";
var text2 = "Мир";
var text3 = text1.concat(" ", text2);
Попробуйте сами »

Этот concat() метод можно использовать вместо оператора плюс. Эти две строки делают то же самое:

Пример

var text = "Привет" + " " + "Мир!";
var text = "Привет".concat(" ", "Мир!");

Все строковые методы возвращают новую строку. Они не изменяют исходную строку.
Формально сказано: строки неизменяемы: строки нельзя изменить, их можно только заменить.


Метод trim()

Метод trim() удаляет пробельные символы с обеих сторон строки:

Пример

var str = "       Привет, мир!        ";
alert(str.trim());
Попробуйте сами »

Этот trim() метод не поддерживается в Internet Explorer 8 и ниже.

Если вам нужна поддержка IE 8, вы можете использовать replace() вместо этого регулярное выражение:

Пример

var str = "       Привет, мир!        ";
alert(str.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, ''));
Попробуйте сами »

Вы также можете использовать решение замены выше, чтобы добавить функцию обрезки в JavaScript String.prototype:

Пример

if (!String.prototype.trim) {
  String.prototype.trim = function () {
    return this.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, '');
  };
}
var str = "       Привет, мир!        ";
alert(str.trim());
Попробуйте сами »

Извлечение строковых символов

Есть 3 метода извлечения строковых символов:

  • charAt(position)
  • charCodeAt(position)
  • Property access [ ]

Метод charAt()

Метод charAt() возвращает символ по указанному индексу (позиции) в строке:

Пример

var str = "ПРИВЕТ МИР";
str.charAt(0);            // возвращается П
Попробуйте сами »

Метод charCodeAt()

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

Метод возвращает код UTF-16 (целое число от 0 до 65535).

Пример

var str = "ПРИВЕТ МИР";

str.charCodeAt(0);         // возвращается 1055
Попробуйте сами »

Доступ к свойствам

ECMAScript 5 (2009) разрешает доступ к свойствам [ ] для строк:

Пример

var str = "ПРИВЕТ МИР";
str[0];                   // возвращается П
Попробуйте сами »

Доступ к свойствам может быть немного непредсказуемым:

  • Не работает в Internet Explorer 7 или более ранней версии.
  • Это делает строки похожими на массивы (но это не так)
  • Если символ не найден, [] возвращает значение undefined, а charAt () возвращает пустую строку.
  • Он доступен только для чтения. str [0] = "A" не выдает ошибки (но не работает!)

Пример

var str = "ПРИВЕТ МИР";
str[0] = "A";             // Не дает никакой ошибки, но и не работает
str[0];                   // возвращается П
Попробуйте сами »

Если вы хотите работать со строкой как с массивом, вы можете преобразовать ее в массив.


Преобразование строки в массив

Строку можно преобразовать в массив с помощью split() split():

Пример

var txt = "a,b,c,d,e";   // Строка
txt.split(",");          // Разделение на запятые
txt.split(" ");          // Разделение на пробелы
txt.split("|");          // Разделение на трубы
Попробуйте сами »

Если разделитель опущен, возвращаемый массив будет содержать всю строку в индексе [0].

Если разделитель "", возвращаемый массив будет массивом одиночных символов:

Пример

var txt = "Привет";       // Строка
txt.split("");           // Разделение на символы
Попробуйте сами »

Полная ссылка на строку

Для получения полной справки перейдите к нашей полной справке по строкам JavaScript.

Справочник содержит описания и примеры всех свойств и методов строк.


Проверьте себя с помощью упражнений

Упражнение:

Найдите положение символа h в строке txt.
var txt = "abcdefghijklm";
var pos = txt.;

Старт