substr和substring之间有什么不同?

时间:2012-04-12 14:19:59

标签: javascript

  

可能重复:
  What is the difference between substr and substring?

我只想澄清这些差异: -

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

以上情况都将返回

ab

alert("abc".substr(1,2));
alert("abc".substring(1,2));

以上情况将首先返回bc,第二个b

所以基本上对于substr,第二个参数是它必须达到的长度? 对于substring,它会停止但不包括??

如果我错了,请纠正我,因为我们今天会进行测验,而且我不想再犯这个错误。

3 个答案:

答案 0 :(得分:4)

是的,substr()的第二个参数是所需子字符串的长度,而substring()是一个字符索引,这个事实通过网络搜索很容易找到。

鲜为人知的是substr()是非标准的(包括ECMAScript 5; ES3和ES5在substr()上有非规范的部分)并且在旧版本中有一些错误IE浏览器此外,slice()优于substring(),因为它允许使用负字符索引,从字符串末尾向后计数:

alert( "Dandelion".slice(-4) ); // Alerts "lion"

答案 1 :(得分:1)

是的,substring会转到索引,而substr会占用一段时间。

答案 2 :(得分:1)

根据以下链接:

http://rapd.wordpress.com/2007/07/12/javascript-substr-vs-substring/

Substr获取起始索引以及您尝试分段的字符串的长度

Substring获取一个起始索引以及您希望它将字符串

分段的索引