JavaScript错误“Uncaught TypeError: xxx.replace is not a function”的解决方法

 2025-01-15  阅读 325  评论 5  点赞 423

摘要:javascript报错“Uncaught TypeError: xxx.replace is not a function”的原因及解决方法。在字符串以外的对象上使用“replace”时发生。错误内容出现在以下对数值执行“replace”的代码中。const num = 123456; const result = num.replace( /\d/g, '*' ); // ← 发

javascript报错“Uncaught TypeError: xxx.replace is not a function”的原因及解决方法。

在字符串以外的对象上使用“replace”时发生。

JavaScript错误“Uncaught TypeError: xxx.replace is not a function”的解决方法

错误内容

出现在以下对数值执行“replace”的代码中。

const num = 123456;

const result = num.replace( /\d/g, '*' ); // ← 发生错误

console.log( result );

错误信息

Uncaught TypeError: num.replace is not a function

JavaScript错误“Uncaught TypeError: xxx.replace is not a function”的解决方法

错误原因

由于“replace”不能用于数值,所以如果数组中有数值也会出现错误,如下所示。

const arr = ['A11', 111, '222'];

const result = arr.map(function (v) {
  return v.replace( /\d/g, '*' );;
});
// Uncaught TypeError: v.replace is not a function

console.log( result );

解决方案

用“toString()”转换成字符串后执行。

const num = 123456;

const result = num.toString().replace( /\d/g, '*' );

console.log( result ); // ******

或者,判断是否为字符串后再使用。

const num = 123456;

const result = typeof num === 'string' ? num.replace(/\d/g) : '不是字符串';

console.log( result ); // 不是字符串


评论列表:

显示更多评论

发表评论:

管理员

承接各种程序开发,外贸网站代运营,外贸网站建设等项目
  • 内容2460
  • 积分67666
  • 金币86666

Copyright © 2024 LS'Blog-保定PHP程序员老宋个人博客 Inc. 保留所有权利。 Powered by LS'blog 3.0.3

页面耗时0.0280秒, 内存占用1.93 MB, 访问数据库28次

冀ICP备19034377号