You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何str.substr(0,4)提示“不是函数”?jQuery数字截取报错排查

问题原因与解决办法

你碰到的这个报错其实很好理解——substr()是字符串类型独有的方法,但你定义的str是一个数字类型的值,数字对象根本没有这个方法,所以调用时直接触发了类型错误。

具体看你的代码:

var str = 7.2387; // 这里的7.2387是Number类型,不是字符串
var shorter = str.substr(0,4); // 数字没有substr方法,报错!

几种可行的解决方式:

  • 先转字符串再截取:把数字转换成字符串后,就能正常调用substr了
var num = 7.2387;
var shorterStr = num.toString().substr(0,4); // 得到"7.23"
// 或者直接把初始值定义为字符串
var str = "7.2387";
var shorterStr = str.substr(0,4);
  • 如果是需要数值上保留两位小数:更推荐用专门的数值处理方法,避免字符串截取的局限性(比如数字位数变化时出错)
    • 用toFixed():会自动四舍五入,返回字符串类型
    var num = 7.2387;
    var fixedNum = num.toFixed(2); // 得到"7.24",转数字的话用Number(fixedNum)
    
    • 用Math.floor实现不四舍五入的截取:
    var num = 7.2387;
    var truncatedNum = Math.floor(num * 100) / 100; // 得到7.23(数字类型)
    

内容的提问来源于stack exchange,提问作者Ismael Quirantes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:09:04