Baseline Widely available
replaceAll()
æ¹æ³è¿åä¸ä¸ªæ°å符串ï¼å
¶ä¸ææå¹é
pattern
çé¨åé½è¢«æ¿æ¢ä¸º replacement
ãpattern
å¯ä»¥æ¯ä¸ä¸ªå符串æä¸ä¸ª RegExp
ï¼replacement
å¯ä»¥æ¯ä¸ä¸ªå符串æä¸ä¸ªå¨æ¯æ¬¡å¹é
æ¶è°ç¨ç彿°ãåå§åç¬¦ä¸²ä¿æä¸åã
const paragraph = "I think Ruth's dog is cuter than your dog!";
console.log(paragraph.replaceAll("dog", "monkey"));
// Expected output: "I think Ruth's monkey is cuter than your monkey!"
// Global flag required when calling replaceAll with regex
const regex = /Dog/gi;
console.log(paragraph.replaceAll(regex, "ferret"));
// Expected output: "I think Ruth's ferret is cuter than your ferret!"
è¯æ³
replaceAll(pattern, replacement)
åæ°
pattern
å¯ä»¥æ¯ä¸ä¸ªå符串æä¸ä¸ªå
·æ Symbol.replace
æ¹æ³ç对象ï¼å
¸åçä¾åæ¯æ£å表达å¼ã任使²¡æ Symbol.replace
æ¹æ³çå¼é½å°è¢«å¼ºå¶è½¬æ¢ä¸ºå符串ã
妿 pattern
æ¯ä¸ä¸ªæ£å表达å¼ï¼åå¿
须设置å
¨å±ï¼g
ï¼æ å¿ï¼å¦åä¼æåº TypeError
ã
replacement
å¯ä»¥æ¯ä¸ä¸ªå符串æä¸ä¸ªå½æ°ãæ¿æ¢å符串çè¯ä¹ä¸ String.prototype.replace()
ç¸åã
è¿åä¸ä¸ªæ°å符串ï¼å
¶ä¸ææå¹é
pattern
çé¨åé½è¢«æ¿æ¢ä¸º replacement
ã
TypeError
妿 pattern
æ¯ä¸ä¸ªæ£å表达å¼ï¼å¹¶ä¸æ²¡æè®¾ç½®å
¨å±ï¼g
ï¼æ å¿ï¼å
¶ flags
屿§ä¸å
å« "g"
ï¼ï¼å伿åºè¯¥å¼å¸¸ã
è¯¥æ¹æ³ä¸ä¼ä¿®æ¹è°ç¨å®çå符串ãå®è¿åä¸ä¸ªæ°å符串ã
ä¸ replace()
ä¸åï¼è¯¥æ¹æ³å°æ¿æ¢ææå¹é
çå符串ï¼èä¸ä»
ä»
æ¯ç¬¬ä¸ä¸ªã妿åç¬¦ä¸²ä¸æ¯éæå·²ç¥çï¼é£ä¹è¿ç¹å«æç¨ï¼å 为è°ç¨ RegExp()
æé 彿°èä¸è½¬ä¹ç¹æ®å符å¯è½ä¼æå¤å°æ¹åå®çè¯ä¹ã
function unsafeRedactName(text, name) {
return text.replace(new RegExp(name, "g"), "[REDACTED]");
}
function safeRedactName(text, name) {
return text.replaceAll(name, "[REDACTED]");
}
const report =
"A hacker called ha.*er used special characters in their name to breach the system.";
console.log(unsafeRedactName(report, "ha.*er")); // "A [REDACTED]s in their name to breach the system."
console.log(safeRedactName(report, "ha.*er")); // "A hacker called [REDACTED] used special characters in their name to breach the system."
妿 pattern
æ¯ä¸ä¸ªå
·æ Symbol.replace
æ¹æ³ç对象ï¼å
æ¬ RegExp
对象ï¼ï¼åè¯¥æ¹æ³å°è¢«è°ç¨ï¼å¹¶ä»¥ç®æ å符串å replacement
ä½ä¸ºåæ°ãå®çè¿åå¼æä¸º replaceAll()
çè¿åå¼ãå¨è¿ç§æ
åµä¸ï¼replaceAll()
çè¡ä¸ºå®å
¨åå³äº [Symbol.replace]()
æ¹æ³ï¼å æ¤é¤äºé¢å¤çè¾å
¥éªè¯ï¼å³æ£å表达å¼å¿
é¡»æ¯å
¨å±çï¼ä¹å¤ï¼å®å°å
·æä¸ replace()
ç¸åçç»æã
妿 pattern
æ¯ä¸ä¸ªç©ºå符串ï¼åæ¿æ¢å
容尿å
¥å°æ¯ä¸ª UTF-16 ç å
ä¹é´ï¼ç±»ä¼¼äº split()
çè¡ä¸ºã
"xxx".replaceAll("", "_"); // "_x_x_x_"
æå
³æ£å表达å¼å±æ§ï¼å°¤å
¶æ¯ sticky æ å¿ï¼å¦ä½ä¸ replaceAll()
交äºçæ´å¤ä¿¡æ¯ï¼è¯·åé
RegExp.prototype[Symbol.replace]()
ã
"aabbcc".replaceAll("b", ".");
// 'aa..cc'
éå
¨å±æ£åè¡¨è¾¾å¼æåºé误
ä½¿ç¨æ£åè¡¨è¾¾å¼æç´¢å¼æ¶ï¼å®å¿ é¡»æ¯å ¨å±çãä¸é¢çä»£ç æ¯ä¸å¯è¡çï¼
"aabbcc".replaceAll(/b/, ".");
// TypeError: replaceAll must be called with a global RegExp
ä¸é¢ç代ç å¯ä»¥æ£å¸¸è¿è¡ï¼
"aabbcc".replaceAll(/b/g, ".");
("aa..cc");
è§è æµè§å¨å
¼å®¹æ§ åè§
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