这里有一些我刚刚注意到并且即时通讯询问它是否正常。我在.substr()中使用.length属性,但似乎.substr()期间.length的值发生了变化。这是一个示例:https://jsfiddle.net/L11yg3y0/1/
var immastring = "Metaphysics"
var test = immastring.substr(2,immastring.length-2);
alert(test);
不应该输出“taphysi”而不是“taphysics”吗?因为现在,这意味着在方法.substr中,它们首先删除前两个字符,实现.length值,然后删除最后两个字符。
我只是想知道,因为我已经在其他语言中使用过这种方法,比如c ++和c#,但它没有那样工作。
答案 0 :(得分:4)
.substr
获取子字符串的起始索引和长度。 "Metaphysics"
的长度为11,因此immastring.length - 2
为9. "taphysics".length
的确为9。
如果要指定结束索引,请改用.substring
。
答案 1 :(得分:2)
JavaScript有两个子字符串方法,你选错了。
str.substr(start[, length])
vs
str.substring(indexStart[, indexEnd])
<强>参考文献:强>