Substr与substring
时间: 2023-06-18 10:03:59 浏览: 109
在许多编程语言中,substr和substring都是用来从一个字符串中提取一个子字符串的函数。但是它们的用法和语法有所不同。
在JavaScript中,substr()函数接受两个参数,第一个参数是要提取的子字符串的起始索引,第二个参数是要提取的字符数。例如,以下代码将从字符串中提取第2到第4个字符:
```
var str = "Hello World!";
var res = str.substr(1, 3);
// res 的值为 "ell"
```
而substring()函数也接受两个参数,但这些参数表示子字符串的起始索引和结束索引(不包括最后一个字符)。例如,以下代码将从字符串中提取第2到第4个字符:
```
var str = "Hello World!";
var res = str.substring(1, 4);
// res 的值为 "ell"
```
需要注意的是,如果第一个参数大于第二个参数,则substring()函数会自动交换这两个参数。而substr()函数不会交换参数。
相关问题
substr 与 substring的区别
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 在处理负数参数和返回结果方面的差异。
substr与substring函数区别
### 回答1:
substr和substring函数都是用来截取字符串的函数,但是它们的用法和区别如下:
1. substr函数
substr函数是从字符串的指定位置开始截取指定长度的子字符串。它的语法如下:
substr(string,start,length)
其中,string是要截取的字符串,start是截取的起始位置,length是截取的长度。如果省略length,则截取从start开始到字符串末尾的所有字符。
2. substring函数
substring函数也是从字符串的指定位置开始截取指定长度的子字符串。它的语法如下:
substring(string,start,end)
其中,string是要截取的字符串,start是截取的起始位置,end是截取的结束位置。如果省略end,则截取从start开始到字符串末尾的所有字符。
区别:
1. substr函数的第三个参数是截取的长度,而substring函数的第三个参数是截取的结束位置。
2. 如果start参数为负数,substr函数会将其视为从字符串末尾开始的位置,而substring函数会将其视为。
3. 如果start参数大于end参数,substr函数会自动交换它们的位置,而substring函数会返回一个空字符串。
综上所述,substr函数和substring函数的用法和区别都需要根据具体的需求来选择使用。
### 回答2:
substr和substring是Javascript字符串函数中非常常用的两个函数。它们都用来截取字符串,但是在使用方式上有很大的区别。
首先是substr函数。substr函数是根据指定的起始位置和截取长度,从字符串中截取指定长度的子串。例如:
```
var str="abcdefg";
var result=str.substr(2,3);
console.log(result);
```
结果输出的是"cde",因为从第2个位置(即字符串中的第3个字符,从0开始计数)开始,截取了3个字符。所以substr函数需要传递两个参数,第一个是截取的起始位置,第二个是要截取的长度。
而substring函数则是根据指定的起始位置和结束位置,从字符串中截取指定范围的子串。例如:
```
var str="abcdefg";
var result=str.substring(2,5);
console.log(result);
```
结果输出的是"cde",同样是从第2个位置开始截取,但是结束位置为第5个位置前一个字符,即第4个位置。所以substring函数需要传递两个参数,第一个是截取的起始位置,第二个是截取的结束位置。
除了使用方式的区别,substr和substring的另一个区别在于对待负数参数的方式。substr函数的第一个参数如果是负数,表示从字符串末尾开始计数,例如:
```
var str="abcdefg";
var result=str.substr(-3,2);
console.log(result);
```
结果输出的是"ef",表示从后往前数第3个字符开始,截取2个字符。而substring函数则将负数参数当做0处理,例如:
```
var str="abcdefg";
var result=str.substring(-3,2);
console.log(result);
```
结果输出的是"ab",表示从第0个位置开始截取2个字符。
总的来说,substr函数和substring函数都是字符串截取函数,根据不同的需求可以选择使用。需要注意的是,substr函数已经标注为被废弃的函数,不建议再使用,推荐使用substring或者slice函数来代替。
### 回答3:
substr与substring函数都可以用来从一个字符串中获取一部分字符。但是它们之间存在一些差别。
首先,这两个函数的参数有所不同。在JavaScript中,substr的参数有两个:第一个参数是要开始提取的字符位置,第二个参数是要提取的字符数量。而substring的参数也有两个:第一个参数是要提取的起始位置,第二个参数是要提取的终止位置,但是它不包括终止位置的字符。
其次,当参数为负数时,这两个函数的操作也不同。在使用substr函数时,如果第一个参数是负数,那么它被解释为字符串末尾的偏移量。而如果第二个参数是负数,那么它被解释为0。然而,在使用substring函数时,任何一个参数为负数,就会被解释为0。
另外,这两个函数也有一些细微的区别。当第一个参数等于字符串长度时,substr函数返回一个空字符串,而substring函数会返回第一个参数的字符串。当第一个参数大于字符串长度时,substr函数返回一个空字符串,而substring函数返回整个字符串。当第二个参数为0时,substr函数返回一个空字符串,而substring函数返回整个字符串。
综上所述,虽然substr与substring函数都用于获取字符串的一部分,但它们的使用方法有所不同。我们需要根据实际情况进行选择。
阅读全文