substr 与 substring的区别
时间: 2024-05-02 21:18:15 浏览: 80
substr 和 substring 都是 JavaScript 中用于截取字符串的函数,但它们有以下区别:
1. 参数不同:substr(start, length) 的第一个参数是要截取的起始位置,第二个参数是要截取的长度;而 substring(start, end) 的两个参数分别是要截取的起始位置和结束位置。
2. 对负数参数的处理不同:substr(start, length) 中如果第一个参数是负数,则从字符串末尾开始计算起始位置;如果第二个参数是负数,则会被当作 0 处理。而 substring(start, end) 中如果任何一个参数是负数,则会被当作 0 处理。
3. 返回结果不同:substr(start, length) 返回从起始位置开始,指定长度的子字符串;substring(start, end) 返回从起始位置到结束位置之间的子字符串。
举个例子:
```
let str = 'hello world';
console.log(str.substr(1, 4)); // 'ello'
console.log(str.substring(1, 4)); // 'ell'
console.log(str.substr(-3, 2)); // 'rl'
console.log(str.substring(-3, 2)); // 'he'
console.log(str.substr(2, -1)); // ''
console.log(str.substring(2, -1)); // 'hel'
console.log(str.substr(-3)); // 'rld'
console.log(str.substring(-3)); // 'hello world'
```
从上面的例子可以看出,substr 和 substring 在处理负数参数和返回结果方面的差异。
阅读全文