The Symbol.search static data property represents the well-known symbol Symbol.search. The String.prototype.search() method looks up this symbol on its first argument for the method that returns the index within a string that matches the current object.
For more information, see RegExp.prototype[Symbol.search]() and 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: 3The well-known symbol Symbol.search.Property attributes of Symbol.searchWritable no Enumerable no Configurable no
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