概括
substr()、substring()、slice()三种方法都可以用于字符串截取,其中slice()可以用于数组。简单用法比较如下:
var str = 'Hello, javascript!'
str.substr(1,4) // "ello"
str.substring(1,4) // "ell"
str.slice(1,4) // "ell"
var arr = ["Mike", "Cameron", "Tom", "Jack"]
arr.slice(1,3) // ["Cameron", "Tom"]
接下来是每个方法的详细用法:
一、substr()
substr()
方法可以从指定下标开始截取指定长度的字符串
string.substr(start,length)
// start 必需,length 可选
start
: 必需。开始下标,如果是负数,从字符串尾部开始截取。
length
: 可选。要截取的字符数。省略该参数,贼返回start到结尾的所有字符。
注:ECMAscript 没有对该方法进行标准化,因此反对使用它。
例子:
var str = 'Hello, javascript!'
str.substr(1,4) // "ello"
str.substr(1) // "ello, javascript!"
str.substr(-3,2) // "pt"
str.substr(-3) // "pt!"
二、substring()
substring()
方法可以用于提取字符串中介于两个指定下标之间的字符
(注:返回的包含开始处的字符,但不包含结束处的字符)
string.substring(from, to)
// 都是正整数,其中from必需,to可选,省略 to 返回from到结尾的所有字符
例子:
var str = 'Hello, javascript!'
str.substring(1,4) // "ell"
str.substring(1) // "ello, javascript!"
三、slice()
- slice()方法可以从已有数组中返回选定的元素。(不改变原数组)
- slice()方法可以提取字符串的某个部分,并以新的字符串返回被提取部分。
slice(start, end)
// 都可以是负数。start必需,end可选。
start
规定开始下标,如果是负数,从数组/字符串尾部开始算起。
end
规定结束下标(返回时,不包含该元素),如果是负数,从数组/字符串尾部开始算起。
例子:
var str = 'Hello, javascript!'
str.slice(1,4) // "ell"
str.slice(1) // "ello, javascript!"
str.slice(-3,-1) // "pt"
str.slice(-3) // "pt!"
var arr = ["Mike", "Cameron", "Tom", "Jack"]
arr.slice(1,3) // ["Cameron", "Tom"]
arr.slice(1) // ["Cameron", "Tom", "Jack"]
arr.slice(-3,-1) // ["Cameron", "Tom"]
arr.slice(-3) // ["Cameron", "Tom", "Jack"]