深入理解JS中的substr和substring
在JavaScript字符串操作中,substr()
和substring()
是两个常用的函数,都用来截取字符串。但在具体应用场景和实现方式有所不同,因此需要深入理解其差异。
substr()
substr()
函数接受两个参数,第一个参数是截取的起始位置,第二个参数是截取的长度。如果省略第二个参数,则默认截取至字符串的尾部。该函数也可以接受负数参数,表示从字符串尾部开始计数。
示例1:
let str = 'Hello, world!';
let subStr = str.substr(7, 5);
console.log(subStr); // 输出 "world"
在上面的例子中,substr(7, 5)
表示从第7个位置(从0开始计数)开始,截取长度为5的字符串。因此输出结果为"world"。
示例2:
let str='Hello world!';
let subStr=str.substr(-6,2);
console.log(subStr);//输出:'ld'
在上面的例子中,substr()
的第一个参数为负数,表示从字符串尾部开始截取,起始位置为倒数第6位(l字母),2
表示截取的长度,即从上一个起始位置开始截取两位,输出结果为"ld"。
substring()
与substr()
类似,substring()
也用来截取字符串,但它接受两个参数,第一个参数是截取的起始位置,第二个参数是截取的终止位置(不包含终止位置本身)。如果省略第二个参数,则默认截取至字符串的尾部。substring()
不支持负数参数。
示例1:
let str = 'Hello, world!';
let subStr = str.substring(7, 12);
console.log(subStr); // 输出 "world"
在上面的例子中,substring(7, 12)
表示从第7个位置(从0开始计数)开始截取,到第12个位置(不包含第12个位置),因此输出结果为"world"。
示例2:
let str='Hello world!';
let subStr=str.substring(6);
console.log(subStr);//输出:'world!'
在上面的例子中,substring()
的第一个参数表示从截取的起始位置,即位置6开始截取,由于省略了第二个参数,因此截取到了字符串尾部,输出结果为"world!"。
总结
substr()
根据起始位置和长度截取字符串,支持负数参数,即从字符串尾部开始计数。substring()
根据起始位置和终止位置截取字符串,不支持负数参数。- 两者的区别在于第二个参数的含义,
substr()
表示截取的长度,substring()
表示截取的终止位置。 - 除非有特别需求,建议使用
substring()
函数。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:深入理解JS中的substr和substring - Python技术站