两者有什么区别
alert("abc".substr(0,2));
and
alert("abc".substring(0,2));
它们似乎都输出“ab”。
两者有什么区别
alert("abc".substr(0,2));
and
alert("abc".substring(0,2));
它们似乎都输出“ab”。
当前回答
编辑:这个答案是参考R编程
以下是substr()和substring()之间的主要区别:
Substr()有参数start和stop,而substring作为参数的第一个和最后一个。 Substr (x, start, stop)
and
substring(text, first, last = 1000000L)
例子
substr("abcdef", start = 2, stop=4)
[1] "bcd"
substring("abcdef", first = 2, last = 4)
[1] "bcd"
substring函数有一个很大的默认值[1000000L]的'last'参数,所以你可以跳过指定,而substr函数需要你指定stop参数的值。
例子
substr("abcdef", start = 2)
Error in substr("abcdef", start = 2) :
argument "stop" is missing, with no default
substring("abcdef", first = 2)
[1] "bcdef"
如果你将substr函数应用到几个开始点或停止点,该函数只使用第一个入口(即停止点1),而substring函数将提取几个可能的字符串。
例子
> substr('abcdef', 1:3, 5)
[1] "abcde"
> substr('abcdef', 1:3, 5:6)
[1] "abcde"
> substr('abcdef', 1, 5:6)
[1] "abcde"
> substring('abcdef', 1:3, 5)
[1] "abcde" "bcde" "cde"
> substring('abcdef', 1, 5:6)
[1] "abcde" "abcdef"
> substring('abcdef', 1:3, 5:6)
[1] "abcde" "bcdef" "cde"
有人提到使用负索引/零。 substr()和substring()都接受。
例子
> substr('abcdef', -2, 3)
[1] "abc"
> substring('abcdef', -2, 3)
[1] "abc"
> substring('abcdef', 0, 3)
[1] "abc"
> substr('abcdef', 0, 3)
[1] "abc"
使用substr()或substring()进行字符串替换的重要注意事项:
替换的数据需要有与被替换部分相同的字符数。 如果想用不同长度的字符串替换子字符串,可以看看gsub()函数。
附注:我使用的是R版本4.0.4
其他回答
区别在于第二个论点。substring的第二个参数是要停止的索引(但不包括),而substr的第二个参数是要返回的最大长度。
链接?
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/substr
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/substring
let str = "Hello World"
console.log(str.substring(1, 3)) // el -> Excludes the last index
console.log(str.substr(1, 3)) // ell -> Includes the last index
最大的区别是,substr()是一个仍然可以使用的已弃用方法,但应该谨慎使用,因为它们预计在未来的某个时候将被完全删除。您应该努力从代码中删除它们的使用。substring()方法成功并指定了前者。
substr (MDN)的参数为(from, length)。 substring (MDN)的参数为(from, to)。
更新:MDN考虑substr遗留问题。
alert("abc".substr(1,2)); // returns "bc"
alert("abc".substring(1,2)); // returns "b"
你可以记住substring(带i)接受索引,就像另一个字符串提取方法slice(带i)一样。
当从0开始时,可以使用任何一种方法。
子弦(startIndex, endIndex(未包括)
substr(startIndex,多少个字符)
const string = 'JavaScript';
console.log('substring(1,2)', string.substring(1,2)); // a
console.log('substr(1,2)', string.substr(1,2)); // av