负数参数在 String.substr() 中的作用是什么?

8

我找到了这个代码片段,但是我不确定它应该是-5还是-6,因为我不知道substr(negative)具体是什么意思。

('00000'+(15).toString(16)).substr(-5)

7
为什么会有这么多的踩?比一些愚蠢的问题要好得多。 - Scary Wombat
3
因为发帖者本可以在5秒钟内打开浏览器控制台来检查这个。 - techfoobar
3
“这个问题没有展示出任何研究努力。”我的意思是,即使w3schools都有相关文档,还有MDN、规范等等。 - T.J. Crowder
1
很好,但没有关闭的投票?而且@techfoobar有这么多的投票 - 奇怪。 - Scary Wombat
8
不要试图理解SO的投票机制。 - fiscblog
@fiscblog - 这是我今年收到的最好的建议。 - Scary Wombat
2个回答

19

substr() 接受一个负数 -N 作为参数,返回的字符串由原字符串的N 个字符组成。

"Hello".substr(-2) => "lo"

来自文档:

如果起始位置是负数,则 substr 将其视为从字符串结尾开始的字符索引。 如果起始位置是负数且它的绝对值大于字符串的长度,则 substr 将 0 用作起始索引。


4
总体而言:
str.substr(-n)

与以下代码等效:

str.substr(str.length-n)

这与以下内容相同:

str.substr(str.length-n,str.length)

返回子字符串:

str[str.length-n,...,str.length-1]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接