顺数从0开始数,倒数从-1开始数。
语法一:substring()方法用于提取字符串中介于两个指定下标之间的字符。
stringObject.substring(start,stop);
参数 | 是否必填 | 描述 |
start | 必选 | 一个非负的整数,规定要提取的子串的第一个字符在stringObject中的位置 |
stop | 可选 | 一个非负的整数,比要提取的子串的最后一个字符在stringObject中的位置多1。如果省略该参数,那么返回的子串会一直在字符串的结尾。 |
substring()返回值:
一个新的字符串,该字符串包含stringObject的一个子字符串,其内容是从start到stop-1处的所有字符,其长度为stop减start。
substring()说明:
1、substring() 方法返回的子串包括 start 处的字符,但不包括 stop 处的字符。
2、如果参数 start 与 stop 相等,那么该方法返回的就是一个空串(即长度为 0 的字符串)。如果 start 比 stop 大,那么该方法在提取子串之前会先交换这两个参数。
案例:
①截取第6位开始的字符:
var stringObject= "HJBZF Hello World.";
var demo = stringObject.substring(6);
console.log(demo); //"Hello World."
console.log(demo.length); //12
②截取第0位开始到第10位为止的字符 //[0,9)
var stringObject = "hjbzf Hello World.";
var demo = stringObject.substring(0,10); //结果: "hjbzf Hell"
console.log(demo); //"Every Hell"
console.log(demo.length); //10 10=10-0 => stop-start
③当start比stop大的时候
var stringObject = "HJBZF Hello World.";
var demo = stringObject.substring(7,4);
console.log(demo); //F H
console.log(demo.length); //3
重要事项:与 slice() 和 substr() 方法不同的是,substring() 不接受负的参数。
语法二:slice() 方法可从已有的数组中返回选定的元素。
arrayObject.slice(start,end);
参数 | 是否必填 | 描述 |
start | 必填 | 规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。 |
end | 可选 | 规定从何处结束选取。该参数是数组片断结束处的数组下标。如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。 |
slice()返回值:
返回一个新的数组,包含从 start 到 end (不包括该元素)的 arrayObject 中的元素。
slice()说明:
请注意,该方法并不会修改数组,而是返回一个子数组。如果想删除数组中的一段元素,应该使用方法 Array.splice();后面会说到。
slice()案例:
①截取从第 11 位到倒数第 6 位为止的字符
var arrayObject = "A man becomes learned by asking questions.";
var demoslice = arrayObject.slice(11,-6);
console.log(demoslice); //es learned by asking ques
console.log(demoslice.length); //25
②截取从第11位开始的字符
var arrayObject = "A man becomes learned by asking questions.";
var demoslice = arrayObject.slice(11);
console.log(demoslice); //es learned by asking questions.
console.log(demoslice.length); //31
③当参数均为正数时
var arrayObject = "A man becomes learned by asking questions.";
var demoslice = arrayObject.slice(11,6);
console.log(demoslice); //
console.log(demoslice.length); //0
④当参数均为负数时
var arrayObject = "A man becomes learned by asking questions.";
var demoslice = arrayObject.slice(-11,-6);
console.log(demoslice); // ques
console.log(demoslice.length); //5
注释:可使用负值从数组的尾部选取元素。
注释:如果 end 未被规定,那么 slice() 方法会选取从 start 到数组结尾的所有元素。
语法三:substr() 方法可在字符串中抽取从 start 下标开始的指定数目的字符。
stringObject.substr(start,length);
参数 | 是否必填 | 描述 |
start | 必填 | 要抽取的子串的起始下标。必须是数值。如果是负数,那么该参数声明从字符串的尾部开始算起的位置。也就是说,-1 指字符串中最后一个字符,-2 指倒数第二个字符,以此类推。 |
length | 可选 | 子串中的字符数。必须是数值。如果省略了该参数,那么返回从 stringObject 的开始位置到结尾的字串。 |
返回值:
一个新的字符串,包含从 stringObject 的 start(包括 start 所指的字符) 处开始的 length 个字符。如果没有指定 length,那么返回的字符串包含从 start 到 stringObject 的结尾的字符。
①从第 6 位开始截取长度为 4 的字符
var stringObject = "A man becomes learned by asking questions.";
var demosubstr = stringObject.substr(6,4);
console.log(demosubstr); //结果: "beco"
console.log(demosubstr.length); //4 因为已给出了(6,4)中长度为4
注释:substr() 的参数指定的是子串的开始位置和长度,因此它可以替代 substring() 和 slice() 来使用。
重要事项:ECMAscript 没有对该方法进行标准化,因此反对使用它。
重要事项:在 IE 4 中,参数 start 的值无效。在这个 BUG 中,start 规定的是第 0 个字符的位置。 在之后的版本中,此 BUG 已被修正。