Symbol.search
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since 2020å¹´1æ.
Symbol.search ã¯éçãã¼ã¿ããããã£ã§ãã¦ã§ã«ãã¦ã³ã·ã³ãã«ã® Symbol.search ã表ãã¾ããString.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")));
// äºæ³ãããçµæ: 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
仿§æ¸
| Specification |
|---|
| ECMAScript® 2027 Language Specification> # sec-symbol.search> |