Symbol.search

Baseline 已广泛支持

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2020 年 1 月⁩ 起,所有主流浏览器均已支持。

Symbol.search 静态数据属性表示 知名符号 Symbol.searchString.prototype.search() 方法在其第一个参数上查找此符号,以查找返回与当前对象匹配的字符串内的索引的方法。

有关更多信息,请参阅 RegExp.prototype[Symbol.search]()String.prototype.search()

试一试

class Search1 {
  constructor(value) {
    this.value = value;
  }
  [Symbol.search](string) {
    return string.indexOf(this.value);
  }
}

console.log("foobar".search(new Search1("bar")));
// Expected output: 3

知名符号 Symbol.search

Symbol.search 的属性特性
可写
可枚举
可配置

示例

js
class CaseInsensitiveSearch {
  constructor(value) {
    this.value = value.toLowerCase();
  }
  [Symbol.search](string) {
    return string.toLowerCase().indexOf(this.value);
  }
}

console.log("foobar".search(new CaseInsensitiveSearch("BaR"))); // 3

规范

规范
ECMAScript® 2026 语言规范
# sec-symbol.search

浏览器兼容性

另见