标签:
不知道为什么,每次需要用到截取字符串的函数时,总是分不清 substr 和 substring 的区别。但话说回来,这两个确实很像啊。js 为什么会有这两个如此“貌似” 的东西呢?
substr(start, [length])
截取从指定下标 start 开始,长度为 length 的字符串。
如果 start 是负数,则从字符串尾部开始计数,比如-1表示从倒数第一个开始。如果这个负数的绝对值大于字符串长度,那么会认为是 0。
如果length 是0或者负数,则会返回一个空字符串,如果省略 length,则会截取从start到结尾。
substring(start, [stop])
截取从下标start到stop(不包括stop位置的字符)的字符串。
如果省略stop,则截取到结尾。start和stop必须为非负整数,也就是 0,1,2 …
如果start大于stop,js会自动交换它们,然后计算。
如果start等于stop,则返回空字符串。
基本的规则就是这样,这是语法范畴的东西,很细很繁琐,也不好区分。实际上使用substr的情景可能是下面这样的。
substring可能是这样:
常常要搭配 indexOf 一起使用。
更多细节可以参考 MDN
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/substr
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/substring
标签:
原文地址:http://www.cnblogs.com/Rexxar/p/5549303.html