substr和substring有什么区别?

之间有什么区别 javascript

alert("abc".substr(0,2));

java

alert("abc".substring(0,2));

他们彷佛都输出“ ab”。 性能


#1楼

Slice vs Substr vs Substring vs []方法 spa

这些javascript方法均具备性能优点。 请相应地使用这些功能。 code


#2楼

正如yatima2975的答案所暗示的,还有另一个区别: 索引

substr()接受一个负的起始位置做为与字符串结尾的偏移量。 substring()没有。 ip

MDN字符串

若是start为负,则substr()将其用做字符串末尾的字符索引。 get

因此总结一下功能上的区别: string

substring(begin-offset, end-offset-exclusive) ,其中开始偏移为0或更大

substr(begin-offset, length) ,其中start-offset也能够是负数


#3楼

区别是第二个参数。 他们的第二个参数,虽然两个数字,都指望两个不一样的东西:

使用子字符串时,第二个参数是不包括的第一个索引:

var s = "string";
s.substring(1, 3); // would return 'tr'

var s = "another example";
s.substring(3, 7); // would return 'ther'

使用substr时,第二个参数是要包含在子字符串中的字符数:

var s = "string";
s.substr(1, 3); // would return 'tri'

var s = "another example";
s.substr(3, 7); // would return 'ther ex'

#4楼

区别在于第二个参数。 substring的第二个参数是要在(但不包括)处中止的索引,而substr的第二个参数是要返回的最大长度。

连接?

https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/substr

https://developer.mozilla.org/zh-CN/JavaScript/Reference/Global_Objects/String/substring


#5楼

substrMDN )将参数设为(from, length)
substringMDN )将参数设为(from, to)

alert("abc".substr(1,2)); // returns "bc"
alert("abc".substring(1,2)); // returns "b"

您能够记得substring采用索引,还有另外一种字符串提取方法slice

从0开始时,您能够使用任何一种方法。

相关文章
相关标签/搜索