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

JS Учебник

JS Главная JS Введение JS Где установить? JS Вывод JS Заявления JS Синтаксис JS Комментарии JS Переменные JS Let JS Const JS Операторы JS Арифметика JS Присваивание JS Типы данных JS Функции JS Объекты JS События JS Строки JS Методы строк JS Поиск строк JS Шаблоны строк JS Числа JS Методы чисел JS Массивы JS Методы массива JS Сортировка массива JS Итерация массива JS Постоянный массив JS Даты JS Формат дат JS Методы получения дат JS Методы набора дат JS Объекты Math JS Случайные числа JS Булевы JS Сравнения JS Оператор If...Else JS Оператор Switch JS Цикл For JS Цикл For In JS Цикл For Of JS Цикл While JS Оператор Break JS Повторяющиеся JS Наборы JS Карты JS Typeof JS Преобразование типов JS Битовые JS Регулярные выражения JS Ошибки JS Область JS Подъемный JS Строгий JS Ключевое слово this JS Функция стрелки JS Классы JS JSON JS Отладчик JS Руководство стиля JS Практика JS Распространенные ошибки JS Эффективность JS Зарезервированные слова

JS Версии

JS Версии JS 2009 (ES5) JS 2015 (ES6) JS 2016 JS 2017 JS 2018 JS IE/Edge JS История

JS Объекты

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

JS Функции

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

JS Классы

Class Введение Class Наследование Class Статистический

JS Асинхронный

JS Обратный вызов JS Асинхронный JS Обещания JS Асинхронный

JS HTML DOM

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

JS Браузер BOM

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

JS Веб APIы

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

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 или jQuery

jQuery Селекторы jQuery Элементы jQuery CSS jQuery 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 = "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ";
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.;

Упражнения