大家好,我是考100分的小小码 ,祝大家学习进步,加薪顺利呀。今天说一说String.substr()、String.slice()、String.substring()解析[亲测有效],希望您对编程的造诣更进一步.
String.substr()
提取一个子串
概要
string.substr(start,length)
参数
start
: 子串的开始位置。如果这个参数是负数,则将从string的尾部开始计算:-1表示最后一个字符,-2表示倒数第二个字符,以此类推
length
: 该子串的字符数。如果省略这个参数,则返回的子串将包含从开始位置到字符串结束的所有字符
返回
string的一部分的一个副本,包含string中自start
位置开始的length
个字符,如果未指定length
则包含自start
到结尾的所有字符
描述
substr()从string中提取并返回一个子串。它并不修改string本身。
注意,substr()通过一个开始字符的位置以及长度来指定期望取得的子串。这与String.substring()和String.splice()不同并且有时会很有用,后两者是通过指定两个字符的位置来定义一个字串。不过需要注意,这个方法不再是ECMAScript的标准,因此已弃用
示例
var s="abcdefg"
s.substr(2,2); //返回“cd”
s.substr(3); //返回“defg”
s.substr(-3,2); //应该返回“ef”;但在IE4中返回“ab”
BUG
在IE中传入负的start不会正常工作,它们不是从string的尾部开始计算字符位置,而是从位置0开始
String.slice()
提取一个字符串
概要
string.slice(start,end)
参数
start
:子串开始的字符串索引。如果为负,则将从该字符串的尾部开始计算。也就是说,-1表示最后一个字符,-2表示倒数第二个字符,以此类推。
end
:紧跟着子串结尾的字符串索引。如果不指定,则子串将包括从start到当前字符串结尾的所有字符。如果这个参数是负的,则将从该字符串的尾部开始计算
返回
一个新的字符串,内容为string中自start位置开始并且包含start位置,直到但不包含end位置的所有字符
描述
slice()返回一个字符串,内容为string的一个切片或子串。它不修改string
String的方法slice()、substring()以及弃用的substr()都返回一个字符串的指定部分。slice()比substring()更灵活,因为它允许负参数值。slice()与substr()的不同之处是,前者通过两个字符位置来定义一个子串,而后者使用一个位置和一个长度。
示例
var s="abcdefg";
s.slice(0,4) //返回“abcd”
s.slice(2,4) //返回“cd”
s.slice(4) //返回“efg”
s.slice(3,-1) //返回“def”
s.slice(3,-2) //返回“de”
s.slice(-3,-1) //应该返回“ef”,但在IE4中返回“abcdef”
BUG
IE4中如果start为负数将出现错误(不过之后的IE版本中没有这个问题)。它不是从字符串的尾部开始计算,而是从位置为0的字符开始
String.substring
返回字符串的一个子串
概要
string.substring(from,to)
参数
from
:一个非负整数,指定要提取的子串的第一个字符在string中的位置
to
:一个非负整数,比要提取的子串的最后一个字符的位置大1.如果省略这个参数,则返回的子串将持续到string的结尾。
返回
一个新的字符串,长度为to-from
,内容为string的一个字串。新字符串的内容为string中从位置from
到to-1
的字符的副本
描述
String.substring()返回string中位置from
与to
之间的字符组成的子串。包含位置from
处的字符,但不包含位置to
处的字符。
如果from
等于to
,则这个方法将返回一个空(长度为0的)字符串。如果from
比to
大,这个方法将先交换两个参数的值,然后返回它们之间的子串。
子串中包含位置from
处的字符,但不包含to
处的字符,记住这一点很重要。这看起来有些随意或违反直觉,不过这个体系的一个值得注意的特性是,返回的子串的长度总是等于to-from
注意String.slice()和非标准的String.substr()也能从字符串中提取子串。但和这些方法不同,String.substring()不接受负参数
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/13562.html