Amy 原创整理|资料核验:2026-10-31
【官方规则】JavaScript 的 replaceAll 返回替换后的新字符串,不会直接修改原字符串。查找参数可以是字符串;若使用正则表达式,必须带全局标记 g,否则会抛出 TypeError。
【教学示例】对文本 a.b.a 调用 replaceAll(".", "-"),结果是 a-b-a,因为字符串形式的点号按普通字符匹配。若把用户输入直接拼成正则,点号等符号可能获得特殊含义,结果就未必是原本想做的字面替换。
【Amy 的实践建议】只想替换普通文本时,优先直接传入字符串;确实要匹配模式时,再明确编写正则和标记。测试里至少放入点号、括号或其他特殊字符,确认程序处理的是文字本身还是规则。
还应检查空查找字符串的情况:文档说明它会在字符串的 UTF-16 单元之间插入替换内容,包括两端。表单允许空输入时,最好先定义预期行为,不把这个特殊结果当成正常查找。
官方来源:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replaceAll