Baseline Widely available
match()
æ¹æ³æ£ç´¢åç¬¦ä¸²ä¸æ£å表达å¼è¿è¡å¹é
çç»æã
const paragraph = "The quick brown fox jumps over the lazy dog. It barked.";
const regex = /[A-Z]/g;
const found = paragraph.match(regex);
console.log(found);
// Expected output: Array ["T", "I"]
è¯æ³ åæ°
regexp
ä¸ä¸ªæ£å表达å¼å¯¹è±¡æè
ä»»ä½å
·æ Symbol.match
æ¹æ³ç对象ã
妿 regexp
䏿¯ RegExp
对象并ä¸å¯¹è±¡ä¸æ Symbol.match
æ¹æ³ï¼åä¼ä½¿ç¨ new RegExp(regexp)
å°å
¶éå¼å°è½¬æ¢ä¸º RegExp
ã
å¦æä½ æ²¡æç»åºä»»ä½åæ°å¹¶ç´æ¥ä½¿ç¨ match()
æ¹æ³ï¼ä½ å°ä¼å¾å°ä¸ä¸ªå
å«ç©ºåç¬¦ä¸²çæ°ç»ï¼[""]
ï¼å 为è¿çä»·äº match(/(?:)/)
ã
ä¸ä¸ª Array
ï¼å
¶å
容åå³äºæ¯å¦åå¨å
¨å±ï¼g
ï¼æ å¿ï¼å¦ææ²¡æå¹é
ï¼åè¿å null
ã
g
æ å¿ï¼åå°è¿åä¸å®æ´æ£å表达å¼å¹é
çææç»æï¼ä½ä¸ä¼è¿åæè·ç»ãg
æ å¿ï¼ååªè¿å第ä¸ä¸ªå®æ´å¹é
åå
¶ç¸å
³æè·ç»ãå¨è¿ç§æ
åµä¸ï¼match()
æ¹æ³å°è¿åä¸ RegExp.prototype.exec()
ç¸åçç»æï¼ä¸ä¸ªå¸¦æä¸äºé¢å¤å±æ§çæ°ç»ï¼ãString.prototype.match
æ¹æ³æ¬èº«çå®ç°é常ç®åï¼å®åªæ¯ä½¿ç¨å符串ä½ä¸ºç¬¬ä¸ä¸ªåæ°è°ç¨äºåæ°ç Symbol.match
æ¹æ³ãå®é
çå®ç°æ¥èªäº RegExp.prototype[Symbol.match]()
ã
RegExp
å¹é
ï¼è¯·ä½¿ç¨ RegExp.prototype.test()
ãRegExp.prototype.exec()
ãRegExp.prototype.exec()
æ String.prototype.matchAll()
ãæå
³ä¼ å
¥æ£åè¡¨è¾¾å¼æ¶ match()
æ¹æ³çè¯ä¹æ´å¤ä¿¡æ¯ï¼è¯·åé
RegExp.prototype[Symbol.match]()
ã
å¨ä¸ä¾ä¸ï¼ä½¿ç¨ match
æ¥æ¾ "Chapter"
ç´§è·ç 1 个æå¤ä¸ªæ°å¼å符ï¼åç´§è·çä¸ä¸ªå°æ°ç¹åæ°å¼å符 0 次æå¤æ¬¡ãæ£å表达å¼å
å« i
æ å¿ï¼å æ¤å¤§å°åä¼è¢«å¿½ç¥ã
const str = "For more information, see Chapter 3.4.5.1";
const re = /see (chapter \d+(\.\d)*)/i;
const found = str.match(re);
console.log(found);
// [
// 'see Chapter 3.4.5.1',
// 'Chapter 3.4.5.1',
// '.1',
// index: 22,
// input: 'For more information, see Chapter 3.4.5.1',
// groups: undefined
// ]
å¨ä¸é¢çå¹é
ç»æä¸ï¼'see Chapter 3.4.5.1'
æ¯æ´ä¸ªå¹é
ã'Chapter 3.4.5.1'
被 (chapter \d+(\.\d)*)
æè·ã.1
æ¯ç± (\.\d)
æåæè·çå¼ãindex
屿§ (22
) æ¯æ´ä¸ªå¹é
çé¶åºç´¢å¼ãinput
屿§æ¯è§£æçåå§å符串ã
ä¸é¢çç¤ºä¾æ¼ç¤ºäºå¨ match()
ä¸ä½¿ç¨å
¨å±æ å¿å忽ç¥å¤§å°åæ å¿ãææä» A
å° E
åä» a
å° e
ç忝é½å°ä½ä¸ºæ°ç»ä¸çä¸ä¸ªå
ç´ è¿åã
const str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
const regexp = /[A-E]/gi;
const matches = str.match(regexp);
console.log(matches);
// ['A', 'B', 'C', 'D', 'E', 'a', 'b', 'c', 'd', 'e']
夿³¨ï¼ åè§ String.prototype.matchAll()
åéè¿æ å¿è¿è¡é«çº§æç´¢ã
卿¯æå½åæè·ç»çæµè§å¨ä¸ï¼ä»¥ä¸ä»£ç å° "fox"
æ "cat"
æè·å°ä¸ä¸ªå为 animal
çç»ä¸ï¼
const paragraph = "The quick brown fox jumps over the lazy dog. It barked.";
const capturingRegex = /(?<animal>fox|cat) jumps over/;
const found = paragraph.match(capturingRegex);
console.log(found.groups); // {animal: "fox"}
ä¸ä¼ åæ°ä½¿ç¨ match()
const str = "ç©ºå³æ¯ç©º";
str.match(); // è¿å [""]
使ç¨å®ç°äº [Symbol.match]()
çé RegExp 对象è°ç¨ match()
妿ä¸ä¸ªå¯¹è±¡æä¸ä¸ªå为 Symbol.match
çæ¹æ³ï¼é£ä¹å®å¯ä»¥è¢«ç¨ä½èªå®ä¹å¹é
å¨ãSymbol.match
çè¿åå¼å°æä¸º match()
æ¹æ³çè¿åå¼ã
const str = "Hmm, this is interesting.";
str.match({
[Symbol.match](str) {
return ["Yes, it's interesting."];
},
}); // returns ["Yes, it's interesting."]
å°éæ£å表达å¼å¯¹è±¡ä½ä¸ºåæ°
å½ regexp
åæ°æ¯ä¸ä¸ªå符串æä¸ä¸ªæ°åï¼å®ä¼ä½¿ç¨ new RegExp(regexp)
æ¥éå¼è½¬æ¢æä¸ä¸ª RegExp
ã
const str1 =
"NaN è¡¨ç¤ºä¸æ¯ä¸ä¸ªæ°åãå¨ JavaScript ä¸ Infinity å
æ¬äº -Infinity å +Infinityã";
const str2 = "æçç·ç·å·²ç» 65 å²äºï¼æçå¥¶å¥¶å·²ç» 63 å²";
const str3 = "该åå被声æä¸º null ä¸ voidã";
str1.match("æ°å"); // âæ°åâæ¯ä¸ä¸ªå符串ãè¿å ["æ°å"]
str1.match(NaN); // NaN çç±»åæ¯æ°åãè¿å ["NaN"]
str1.match(Infinity); // Infinity çç±»åæ¯æ°åãè¿å ["Infinity"]
str1.match(+Infinity); // è¿å ["Infinity"]
str1.match(-Infinity); // è¿å ["-Infinity"]
str2.match(65); // è¿å ["65"]
str2.match(+65); // 带æ£å·çæ°åãè¿å ["65"]
str3.match(null); // è¿å ["null"]
å¦æç¹æ®å符没æè¢«æ£ç¡®è½¬ä¹ï¼è¿å¯è½ä¼å¯¼è´ææ³ä¸å°çç»æã
console.log("123".match("1.3")); // [ "123" ]
è¿æ¯ä¸ä¸ªå¹é
ï¼å 为æ£å表达å¼ä¸ç .
å¯ä»¥å¹é
ä»»ä½å符ã为äºä»
å¹é
ä¸ä¸ªç¹å符ï¼éè¦å¯¹è¾å
¥è¿è¡è½¬ä¹ã
console.log("123".match("1\\.3")); // null
è§è æµè§å¨å
¼å®¹æ§ åè§
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