我只想澄清这些差异: -
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
,它会停止但不包括??
如果我错了,请纠正我,因为我们今天会进行测验,而且我不想再犯这个错误。
答案 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
获取一个起始索引以及您希望它将字符串