使用JavaScript的replaceAll()报错:Uncaught TypeError,求解决方案
解决"Uncaught TypeError: variable2.replaceAll is not a function"报错
问题原因
replaceAll是ES2021(ES12)新增的字符串方法,如果你的运行环境(比如旧版Chrome/Firefox、Node.js < 15.0.0)不支持该语法,就会触发这个错误。另外,即便环境支持replaceAll,当使用正则表达式作为第一个参数时,必须确保正则带有g全局标志(你的代码里已经满足这一点,核心问题还是环境兼容性)。
解决方案
方案1:改用replace方法(推荐)
当正则表达式带有g全局标志时,String.prototype.replace会自动替换所有匹配项,和replaceAll效果完全一致,且兼容性覆盖绝大多数环境:
variable2 = "blah,blah,blah12345"; variable1 = variable2.replace(/\D/g, ''); console.log(variable1); // 输出:"12345"
方案2:升级环境支持ES2021+
如果坚持要用replaceAll,需要将运行环境升级到支持ES2021的版本:
- 浏览器:Chrome 90+、Firefox 85+、Safari 14.1+
- Node.js:15.0.0+
升级后你的原有代码即可正常运行,因为你的正则已带有g标志,符合replaceAll的参数要求。
内容的提问来源于stack exchange,提问作者Nooofs1
相关产品推荐
相关产品推荐

