A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from http://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/RegExp/Symbol.split below:

RegExp.prototype[Symbol.split]() - JavaScript | MDN

RegExp.prototype[Symbol.split]()

Baseline Widely available

[Symbol.split]() 是 RegExp 实例的方法,它指定了当正则表达式作为分隔符传入 String.prototype.split 时,字符串应如何被分割。

尝试一下
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("-")));
// 预期输出:Array ["(2016)", "(01)", "(02)"]

console.log("2016-01-02".split(/-/));
// 预期输出:Array ["2016", "01", "02"]
语法
regexp[Symbol.split](str)
regexp[Symbol.split](str, limit)
参数
str

分割操作的目标。

limit 可选

一个指定要查找的分割次数的上限的整数。[Symbol.split]() 方法仍然会对 this 正则表达式模式(或上述语法中的 regexp)的每个匹配项进行分割,直到分割的元素数量达到 limit 限制,或者字符串中不再匹配该模式。

返回值

一个包含子字符串作为元素的 Array。捕获组也会被包含在内。

描述

当 RegExp 作为分隔符传入时,String.prototype.split() 会在内部调用此方法。例如,下面的两个示例返回相同的结果。

"a-b-c".split(/-/);

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

此方法用于在自定义 RegExp 子类中 split() 方法的行为。

RegExp.prototype[Symbol.split]() 基础方法具有以下行为:

示例 直接调用

该方法的用法几乎与 String.prototype.split() 相同,不同之处在于 this 对象不同且参数顺序也有所区别。

const re = /-/g;
const str = "2016-01-02";
const result = re[Symbol.split](str);
console.log(result); // ["2016", "01", "02"]
在子类中使用 [Symbol.split]()

RegExp 的子类可以重写 [Symbol.split]() 方法,以修改默认行为。

class MyRegExp extends RegExp {
  [Symbol.split](str, limit) {
    const result = RegExp.prototype[Symbol.split].call(this, str, limit);
    return result.map((x) => `(${x})`);
  }
}

const re = new MyRegExp("-");
const str = "2016-01-02";
const result = str.split(re); // String.prototype.split 会调用 re[Symbol.split]()。
console.log(result); // ["(2016)", "(01)", "(02)"]
规范 浏览器兼容性 参见

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4