substr 和 substring 有啥区别? [复制]

Posted

技术标签:

【中文标题】substr 和 substring 有啥区别? [复制]【英文标题】:What is the different between substr and substring? [duplicate]substr 和 substring 有什么区别? [复制] 【发布时间】:2012-04-24 21:53:17 【问题描述】:

可能重复: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,它将停止但不包括??

如果我错了,请纠正我,因为我们今天会有一个测验,我不想再犯错了。

【问题讨论】:

你知道有一个叫 google 的网站,对吧? first hit @EliasVanOotegem 谢谢你提醒我 :) 【参考方案1】:

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

鲜为人知的是 substr() 是非标准的(直到并包括 ECMAScript 5;ES3 和 ES5 在 substr() 上有非规范部分)并且在旧版本的 IE 中存在一些错误。此外,slice()substring() 更可取,因为它允许负字符索引,从字符串末尾倒数:

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

【讨论】:

【参考方案2】:

是的,substring 用于索引,而substr 用于长度。

【讨论】:

【参考方案3】:

根据以下链接:

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

Substr 采用起始索引和您尝试分段的字符串的长度

Substring 采用起始索引和您希望它分割字符串的索引

【讨论】:

以上是关于substr 和 substring 有啥区别? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

String.subString() 和 String.subSequence() 有啥区别

我的嵌套子查询和 substr 函数有啥问题

substr和substring的区别

substring和substr的区别

JS中的substring和substr函数的区别说明

slice,substr和substring的区别