JS中substring、substr和slice的区别

摘要

在JavaScript中,截取字符串的方法有很多种。常用到的方法有substring、substr和slice。很多人都知道这三个方法可以用于字符串的截取,但是谈及三者之间的区别确不甚了解。今天,笔者就来比较一下JavaScript中substring、substr和slice的区别。

在JavaScript中,截取字符串的方法有很多种。常用到的方法有substring、substr和slice。很多人都知道这三个方法可以用于字符串的截取,但是谈及三者之间的区别确不甚了解。今天,笔者就来比较一下JavaScript中substring、substr和slice的区别

string.substring(start[, end])

1、start必填参数,一个非负的整数,代表从何处开始截取。

2、end非必填参数,一个非负的整数,代表从何处结束(但不包含这一位)。若未指定此参数,则截取的是包括start到原字符串结尾的字符串。

注:如果start与end相等,那么该方法将返回的一个空字符串。在参数合法的前提下,如果start比end大,那么该方法在截取字符串之前会先交换这两个参数。

string.substr(start[, length])

1、start必填参数,代表从何处开始截取。如果该参数是负数,那么它规定的是从字符串的尾部开始算起的位置。

2、length非必填参数,一个非负的整数,代码要截取的长度。若未指定此参数,则截取的是包括start到原字符串结尾的字符串。

注:由于ECMAScript没有对该方法进行标准化,因此反对使用它。

string.slice(start[, end])

1、start必填参数必需。代表从何处开始截取。如果该参数是负数,那么它规定的是从字符串的尾部开始算起的位置。

2、end非必填参数,代表从何处结束(但不包含这一位)。如果该参数是负数,那么它规定的是从字符串的尾部开始算起的位置。若未指定此参数,则截取的是包括start到原字符串结尾的字符串。

综上所述:我们能够看出,slice比substring要灵活一些,因为它允许使用负数作为参数。slice与substr有所不同,因为它用两个字符的位置来截取字符串,而substr则用字符位置和长度来截取字符串。虽然substr方法没有被ECMAScript标准化,但是各大浏览器默认都是支持的。对于这三者的选择,我们可以根据自己的习惯来选择。

如果你有什么需要补充的,欢迎下方留言。

shaw

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: