Baseline Widely available
[Symbol.search]()
㯠RegExp
ã¤ã³ã¹ã¿ã³ã¹ã®ã¡ã½ããã§ã String.prototype.search
ãã©ã®ããã«åä½ããã®ããæå®ãã¾ãã
class RegExp1 extends RegExp {
constructor(str) {
super(str);
this.pattern = str;
}
[Symbol.search](str) {
return str.indexOf(this.pattern);
}
}
console.log("table football".search(new RegExp1("foo")));
// Expected output: 6
æ§æ
regexp[Symbol.search](str)
弿°
str
æ¤ç´¢å¯¾è±¡ã®æåå (String
) ã§ãã
æ£è¦è¡¨ç¾ã§æå®ãããæååãæåã«ä¸è´ããã¤ã³ããã¯ã¹ã®å¤ãã¾ãã¯ä¸è´ããæååãè¦ã¤ãããªãã£ãå ´å㯠-1
ãè¿ãã¾ãã
ãã®ã¡ã½ããã¯ã String.prototype.search()
ã®å
é¨ã§å¼ã³åºããã¾ãããã¨ãã°ã次㮠2 ã¤ã®ä¾ã¯åãçµæãè¿ãã¾ãã
"abc".search(/a/);
/a/[Symbol.search]("abc");
ãã®ã¡ã½ãã㯠Symbol.split
ã [Symbol.matchAll]()
ã¨ã¯ç°ãªããæ£è¦è¡¨ç¾ãã³ãã¼ãã¾ããããããã[Symbol.match]()
ã [Symbol.replace]()
ã¨ã¯ç°ãªããå®è¡ãå§ããã¨ãã«ã¯ lastIndex
ã 0 ã«è¨å®ããçµäºããã¨ãã«ã¯ååã®å¤ã«æ»ãã®ã§ãä¸è¬çã«å¯ä½ç¨ãé¿ãããã¨ãã§ãã¾ããã¤ã¾ãããã®ã¡ã½ããã§ã¯ g
ãã©ã°ã¯å¹æããªãã lastIndex
ã 0 ã§ãªãå ´åã§ãå¸¸ã«æååã®æåã«ä¸è´ããé¨åãè¿ãã¾ããããã¯ãç²ççæ£è¦è¡¨ç¾ãå¸¸ã«æååã®å
é ãå³å¯ã«æ¤ç´¢ãããã¨ãæå³ãã¦ãã¾ãã
const re = /[abc]/g;
re.lastIndex = 2;
console.log("abc".search(re)); // 0
const re2 = /[bc]/y;
re2.lastIndex = 1;
console.log("abc".search(re2)); // -1
console.log("abc".match(re2)); // [ 'b' ]
[Symbol.search]()
ã¯å¸¸ã«æ£è¦è¡¨ç¾ã® exec()
ã 1 åã ãå¼ã³åºããçµæã® index
ããããã£ãè¿ãããçµæã null
ã®å ´å㯠-1
ãè¿ãã¾ãã
ãã®ã¡ã½ããã¯ãRegExp
ãµãã¯ã©ã¹ã§æ¤ç´¢åä½ãã«ã¹ã¿ãã¤ãºããããã«åå¨ãã¦ãã¾ãã
ãã®ã¡ã½ããã¯ãthis
ã¨å¼æ°é ãç°ãªããã¨ãé¤ã㦠String.prototype.search()
ã¨ã»ã¼åãæ¹æ³ã§ä½¿ç¨ã§ãã¾ãã
const re = /-/g;
const str = "2016-01-02";
const result = re[Symbol.search](str);
console.log(result); // 4
ãµãã¯ã©ã¹ã§ã® [Symbol.search]()
ã®ä½¿ç¨
RegExp
ã®ãµãã¯ã©ã¹ã¯ãåä½ãä¿®æ£ããããã« [Symbol.search]()
ã¡ã½ããããªã¼ãã¼ã©ã¤ãã§ãã¾ãã
class MyRegExp extends RegExp {
constructor(str) {
super(str);
this.pattern = str;
}
[Symbol.search](str) {
return str.indexOf(this.pattern);
}
}
const re = new MyRegExp("a+b");
const str = "ab a+b";
const result = str.search(re); // String.prototype.search ã¯åå®ç¾©ãã [Symbol.search] ãå¼ã³åºãã
console.log(result); // 3
仿§æ¸ ãã©ã¦ã¶ã¼ã®äºææ§ é¢é£æ
å ±
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