JavaScript метод String.prototype.substring()
Определение и применение
JavaScript метод substring() позволяет извлечь символы из строки (подстроку) между двумя заданными
индексами, или от определенного индекса до конца строки.
Индексы и длины здесь измеряются в кодовых единицах UTF-16. Например, "😀".length равно 2;
разрезание по индексу может разделить суррогатную пару. Исходная строка не изменяется.
Поддержка браузерами
Спецификация: ecma262
Поддерживается во всех основных браузерах с 2015 года.
| Возможность | Компьютеры | Мобильные | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
substring | 1 | 12 | 1 | 3 | 1 | 18 | 4 | 10.1 | 1 | 1.0 | 4.4 | 1 |
поддерживаетсяс ограниченияминет поддержкинет данных≤31 — не позднее версии 31
JavaScript синтаксис
JavaScript
// извлечение символов из строки от определенного индекса до конца строки
string.substring( start );
// извлечение символов из строки между двумя заданными индексами
string.substring( start, end);
Спецификация
ECMAScript: String.prototype.substring()
Значения параметров
| Параметр | Описание |
|---|---|
start |
Целое число, которое определяет индекс с которого производится копирование подстроки из исходной строки.
Обязательный параметр. Если в качестве значения индекса указывается отрицательное число или значение NaN (англ. Not-a-Number, "не число"), то это значение расценивается равным
нулю. Если один из параметров больше или равен длине строки, то значение расценивается равным длине
строки. Если параметр start равен параметру end, то метод
substring() вернет пустую строку. Если параметр start больше параметра
end, то метод поменяет их значения местами.
|
end |
Целое число, которое определяет индекс до которого происходит копирование подстроки. Подстрока включает
символы указанные до указанного индекса (символ по указанному индексу не включается).
Необязательный параметр. Если параметр end не используется или равен undefined, то метод
substring() производит копирование символов до конца строки. Если в качестве значения индекса
указывается отрицательное число или значение NaN (англ. Not-a-Number, "не число"), то это
значение расценивается равным нулю, если в этом случае значение параметра start окажется
больше параметра end, то метод поменяет их местами.
|
Примеры, попробуйте сами
В примере «Границы и перестановка индексов» показан результат вызова метода.
Границы и перестановка индексов
Измените исходную строку или аргумент метода и сравните результат после запуска.
index.html
HTML
<html lang="ru">
<head>
<meta charset="UTF-8" />
<title>Границы и перестановка индексов</title>
</head>
<body>
<p>Результат выполнения выводится в консоль.</p>
</body>
</html>
main.js
JavaScript
var string = 'Hello world' // инициализируем строковую переменную
console.log(string.substring(0)) // возвращаемое значение "Hello world"
console.log(string.substring(6)) // возвращаемое значение "world"
console.log(string.substring(10)) // возвращаемое значение "d"
console.log(string.substring(-10)) // возвращаемое значение "Hello world"
console.log(string.substring(15)) // возвращаемое значение ""
console.log(string.substring(0, 0)) // возвращаемое значение ""
console.log(string.substring(1, 4)) // возвращаемое значение "ell"
console.log(string.substring(4, 1)) // возвращаемое значение "ell" (значения параметров меняются местами)
console.log(string.substring(0, 4)) // возвращаемое значение "Hell"
console.log(string.substring(4, NaN)) // возвращаемое значение "Hell" (NaN расценивается как 0 и значения параметров меняются местами)
console.log('abcd'.substring(1, undefined)) // bcd
Режим чтения