.substr()里面的.length属性变化?

时间:2015-10-09 13:50:45

标签: javascript

这里有一些我刚刚注意到并且即时通讯询问它是否正常。我在.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#,但它没有那样工作。

2 个答案:

答案 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])

<强>参考文献: