This page was translated from English by the community.Learn more and join the MDN Web Docs community.
RegExp.prototype[@@split]()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since январь 2020 г..
[@@split]() метод делит объектString в массив строк, путём разбиения строки на подстроки.
In this article
Интерактивный пример
class RegExp1 extends RegExp { [Symbol.split](str, limit) { const result = RegExp.prototype[Symbol.split].call(this, str, limit); return result.map((x) => `(${x})`); }}console.log("2016-01-02".split(new RegExp1("-")));// Expected output: Array ["(2016)", "(01)", "(02)"]console.log("2016-01-02".split(new RegExp("-")));// Expected output: Array ["2016", "01", "02"]Синтаксис
regexp[Symbol.split](str[, limit])
Параметры
Возвращаемое значение
Array содержит подстроки как элементы.
Описание
Этот метод вызываетString.prototype.split(), если аргументseparator объектRegExp. Для примера, два данных выражения возвращают одинаковый результат.
"a-b-c".split(/-/);/-/[Symbol.split]("a-b-c");Этот метод существует для кастомизации поведения (разбиения) подклассаRegExp.
Если аргументstrне объект типаRegExp, методString.prototype.split() не вызывается, так же не создаётся объект типаRegExp.
Примеры
>Прямой вызов
Этот метод может быть использован, так же какString.prototype.split(), кроме случаев когдаthis отличаются и аргументы идут в разном порядке.
var re = /-/g;var str = "2016-01-02";var result = re[Symbol.split](str);console.log(result); // ["2016", "01", "02"]Использование@@split в подклассах
ПодклассыRegExp могут переопределить[@@split]() для изменения стандартного поведения.
class MyRegExp extends RegExp { [Symbol.split](str, limit) { var result = RegExp.prototype[Symbol.split].call(this, str, limit); return result.map((x) => "(" + x + ")"); }}var re = new MyRegExp("-");var str = "2016-01-02";var result = str.split(re); // String.prototype.split calls re[@@split].console.log(result); // ["(2016)", "(01)", "(02)"]Спецификации
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-regexp.prototype-%symbol.split%> |