Movatterモバイル変換


[0]ホーム

URL:


  1. Веб-технологии для разработчиков
  2. JavaScript
  3. Справочник по JavaScript
  4. Стандартные встроенные объекты
  5. RegExp
  6. RegExp.prototype[@@split]()

This page was translated from English by the community.Learn more and join the MDN Web Docs community.

View in EnglishAlways switch to English

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 в массив строк, путём разбиения строки на подстроки.

Интерактивный пример

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])

Параметры

str

Цель разбиения.

limit

Необязательное. Целое число ограничивающее кол-во разбиений.[@@split]() метод разбивает все совпаденияthis RegExp шаблона, до тех пор пока не достигнет числаlimit или строка будет корочеthis шаблона.

Возвращаемое значение

Array содержит подстроки как элементы.

Описание

Этот метод вызываетString.prototype.split(), если аргументseparator объектRegExp. Для примера, два данных выражения возвращают одинаковый результат.

js
"a-b-c".split(/-/);/-/[Symbol.split]("a-b-c");

Этот метод существует для кастомизации поведения (разбиения) подклассаRegExp.

Если аргументstrне объект типаRegExp, методString.prototype.split() не вызывается, так же не создаётся объект типаRegExp.

Примеры

Прямой вызов

Этот метод может быть использован, так же какString.prototype.split(), кроме случаев когдаthis отличаются и аргументы идут в разном порядке.

js
var re = /-/g;var str = "2016-01-02";var result = re[Symbol.split](str);console.log(result); // ["2016", "01", "02"]

Использование@@split в подклассах

ПодклассыRegExp могут переопределить[@@split]() для изменения стандартного поведения.

js
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%

Совместимость с браузерами

Смотрите также

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp