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
相关产品推荐
相关产品推荐

