В этом руководстве вы узнаете, как использовать метод объекта String slice() в JavaScript для извлечения подстроки из строки.
Метод String.prototype.slice() извлекает часть строки и возвращает ее как подстроку. Ниже показан синтаксис:
slice(start, end)
Метод slice() имеет два необязательных параметра start и end.
start
Параметр start — это отсчитываемый от нуля индекс, с которого метод начинает извлечение. Например:
const str = 'Hello';
const substr = str.slice(3);
console.log({ substr });
Выход:
{ substr: 'lo' }Если start отрицательный, метод slice() начинает извлечение из str.length + start. Например:
const str = 'Hello';
const substr = str.slice(-3);
console.log({ substr });Выход:
{ substr: 'llo' }Если start опущен, не определен или не может быть преобразован в число, метод slice() начинает извлечение с начала строки:
const str = 'Hello';
const substr = str.slice();
console.log({ substr });
Выход:
{ substr: 'Hello' }Если start больше или равен длине строки, метод slice() возвращает пустую строку. Например:
const str = 'Hello';
const substr = str.slice(5);
console.log({ substr });
Выход:
{ substr: '' }end
end — это отсчитываемый от нуля индекс, который указывает позицию перед тем, как метод slice() завершит извлечение. Строка результата не будет включать символ в end индекса. Например:
const str = 'Hello';
const substr = str.slice(0, 2);
console.log({ substr });Выход:
{ substr: 'He' }Если end отрицательный, метод slice() обрабатывает его как str.length + end. Например:
const str = 'Hello';
const substr = str.slice(0, -2);
// str.length 5
// str.length + end = 5 +(-2) = 3
console.log({ substr });Если end больше длины строки, метод slice() выполняет извлечение в конец строки. Например:
const str = 'Hello';
const substr = str.slice(2, 6);
console.log({ substr });Выход:
{ substr: 'llo' }Если end опущен, не определен или не может быть преобразован в число, метод slice() также извлекает в конец строки. Например:
const str = 'Hello';
const substr = str.slice(3);
console.log({ substr });Выход:
{ substr: 'lo' }Если end представляет позицию, предшествующую позиции, представленной start, метод slice() возвращает пустую строку. Например:
const str = 'Hello';
const substr = str.slice(3, 2);
console.log({ substr });Выход:
{ substr: '' }Практический пример метода slice()
В следующем примере используется метод slice() для получения локальной части адреса электронной почты:
let email = 'john@example.com'
let localPart = email.slice(0,email.indexOf('@'));
console.log(localPart);Выход:
john
Как это работает:
- Сначала используйте метод
indexOf(), чтобы найти знак@. Возвращаемое значениеindexOf()используется в качестве второго аргумента методаslice(). - Затем используйте метод
slice()для извлечения локальной части электронного письма, начиная с начала строки и заканчивая символом перед знаком@.
