В этом руководстве вы узнаете, как использовать метод объекта 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()
для извлечения локальной части электронного письма, начиная с начала строки и заканчивая символом перед знаком@
.