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

JS中调用substring报错:Uncaught TypeError: xname.substring不是函数

解决xname.substring不是函数的错误

错误原因

slice(-1) 方法返回的是包含最后一个元素的数组,而非字符串。比如你预期的文件名FileN1Name.html,实际location.pathname.split("/").slice(-1)得到的是["FileN1Name.html"],数组类型没有substring方法,因此触发TypeError。

修正方案

有两种简单的修复方式:

  • 方式一:用pop()替代slice(-1)
    pop()会直接取出数组的最后一个元素(字符串类型):
var pstr = "";
var xname = location.pathname.split("/").pop();
pstr = xname.substring(5,6);
alert(pstr);
  • 方式二:通过索引取出数组元素
    如果坚持使用slice(-1),可以通过[0]获取数组中的字符串:
var pstr = "";
var xname = location.pathname.split("/").slice(-1)[0];
pstr = xname.substring(5,6);
alert(pstr);

验证方法

可以在控制台执行console.log(typeof xname),确认输出为string,而非object(数组的typeof结果是object),确保后续字符串方法能正常调用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 01:44:52