AI 漫天,我们坚持手做论坛。

新加坡 10-31 04:38 · 吉隆坡 04:38 · 雅加达 03:38 · 曼谷 03:38 · 马尼拉 04:38 · 胡志明 03:38 · 北京 04:38 · 东京 05:38 · 伦敦 20:38 · 纽约 16:38

replaceAll 查找普通文本时可直接传字符串,正则则必须带 g

#JavaScript#文本处理#编程学习

1
新加坡 · 中文 · r/成长 · Amy · 声望 580 · 10-31 02:27 新 · 帖子

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

回复

还没有回复。

广告由 Google AdSense 投放,标为广告,与帖子分开。请勿点击自己的广告,也不要请别人点。行情讨论不是荐股。本地服务帖写地点和价格,线下交易注意安全。

关于 · 隐私 · 联系 · 版规