substring()

substring() 方法返回一个字符串在开始索引到结束索引之间的一个子集, 或从开始索引直到字符串的末尾的一个子集。

语法

str.substring(indexStart[, indexEnd])

参数

indexStart
需要截取的第一个字符的索引,该字符作为返回的字符串的首字母。

indexEnd
可选。一个 0 到字符串长度之间的整数,以该数字为索引的字符不包含在截取的字符串内。

返回值

包含给定字符串的指定部分的新字符串。

描述

substring 提取从 indexStart 到 indexEnd(不包括)之间的字符。特别地:

  • 如果 indexStart 等于 indexEnd,substring 返回一个空字符串。
  • 如果省略 indexEnd,substring 提取字符一直到字符串末尾。
  • 如果任一参数小于 0 或为 NaN,则被当作 0。
  • 如果任一参数大于 stringName.length,则被当作 stringName.length。
  • 如果 indexStart 大于 indexEnd,则 substring 的执行效果就像两个参数调换了一样。见下面的例子。

示例

var str = 'sobird.me';
str.substring(0); // sobird.me
str.substring(0, 3); // sob
str.substring(2, 2); // 
str.substring(-1, 3); // sob
str.substring(0, -1); //
str.substring(0, 10); // sobird.me
str.substring(5, 3); // ir

substr

substr() 方法返回一个字符串中从指定位置开始到指定字符数的字符。

警告: 尽管String.prototype.substr(…)没有严格被废弃 (as in “removed from the Web standards”), 但它被认作是遗留的函数并且可以的话应该避免使用。它并非JavaScript核心语言的一部分,未来将可能会被移除掉。如果可以的话,使用substring()替代它.

语法

str.substr(start[, length])

参数

start
开始提取字符的位置。如果为负值,则被看作 strLength + start,其中 strLength 为字符串的长度(例如,如果 start 为 -3,则被看作 strLength + (-3))。
length
可选。提取的字符数。

描述

start 是一个字符的索引。首字符的索引为 0,最后一个字符的索引为 字符串的长度减去1。substr 从 start 位置开始提取字符,提取 length 个字符(或直到字符串的末尾)。

如果 start 为正值,且大于或等于字符串的长度,则 substr 返回一个空字符串。

如果 start 为负值,则 substr 把它作为从字符串末尾开始的一个字符索引。如果 start 为负值且 abs(start) 大于字符串的长度,则 substr 使用 0 作为开始提取的索引。注意负的 start 参数不被 Microsoft JScript 所支持。

如果 length 为 0 或负值,则 substr 返回一个空字符串。如果忽略 length,则 substr 提取字符,直到字符串末尾。

示例

var str = 'sobird.me';
str.substr(1,2); // ob
str.substr(-3,2); // .m
str.substr(-3); // .me
str.substr(1); // obird.me
tr.substr(-20,2); // so
str.substr(20,2); // 

slice()

slice() 方法提取一个字符串的一部分,并返回一新的字符串。

语法

str.slice(beginSlice[, endSlice])

参数

beginSlice
从该索引(以 0 为基数)处开始提取原字符串中的字符。如果值为负数,会被当做 sourceLength + beginSlice 看待,这里的sourceLength 是字符串的长度 (例如, 如果beginSlice 是 -3 则看作是: sourceLength – 3)

endSlice
可选。在该索引(以 0 为基数)处结束提取字符串。如果省略该参数,slice会一直提取到字符串末尾。如果该参数为负数,则被看作是 sourceLength + endSlice,这里的 sourceLength 就是字符串的长度(例如,如果 endSlice 是 -3,则是, sourceLength – 3)。

返回值

返回一个从原字符串中提取出来的新字符串

描述

slice() 从一个字符串中提取字符串并返回新字符串。在一个字符串中的改变不会影响另一个字符串。也就是说,slice 不修改原字符串,只会返回一个包含了原字符串中部分字符的新字符串。

注意:slice() 提取的新字符串包括beginSlice但不包括 endSlice。

例1:str.slice(1, 4) 提取新字符串从第二个字符到第四个 (字符索引值为 1, 2, 和 3)。

例2:str.slice(2, -1) 提取第三个字符到倒数第一个字符。

示例

var str = 'sobird.me';
str.substr(-3); // .me
str.slice(-3, -1); // .m
str.slice(0, -1); // sobird.m

参考

String对象