您的位置:首页 > Web前端 > JavaScript

js中substring和substr的用法比较

2016-03-24 11:09 357 查看
原文:js中substring和substr的用法比较推荐使用substring方法


stringObject.substring(start,stop)

stringObject.substr(start,length)

定义和用法

提取字符串中两个指定的索引号之间的字符。

substring()方法用于提取字符串中介于两个指定下标之间的字符。

从起始索引号提取字符串中指定数目的字符。

substr()方法可在字符串中抽取从start下标开始的指定数目的字符。

参数描述

参数描述

start必需。一个非负的整数,规定要提取的子串的第一个字符在stringObject中的位置。

stop可选。一个非负的整数,比要提取的子串的最后一个字符在stringObject中的位置多1。如果省略该参数,那么返回的子串会一直到字符串的结尾。

参数描述
start必需。所需的子字符串的起始位置。字符串中的第一个字符的索引为0。
length可选。在返回的子字符串中应包括的字符个数。
返回值

一个新的字符串,该字符串值包含stringObject的一个子字符串,其内容是从start处到stop-1处的所有字符,其长度为stop减start。一个新的字符串,包含从stringObject的start(包括start所指的字符)处开始的length个字符。如果没有指定length,那么返回的字符串包含从start到stringObject的结尾的字符。
说明

substring方法返回的子串包括start处的字符,但不包括end处的字符。
如果start与end相等,那么该方法返回的就是一个空串(即长度为0的字符串)。
如果start比end大,那么该方法在提取子串之前会先交换这两个参数。
如果start或end为负数,那么它将被替换为0。
如果start为负数,则start=str.length+start。
如果length为0或负数,将返回一个空字符串。
如果没有指定该参数,则子字符串将延续到stringObject的最后。
varstr="0123456789";

console.log(str.substring(0));//------------"0123456789"
console.log(str.substring(5));//------------"56789"
console.log(str.substring(10));//-----------""
console.log(str.substring(12));//-----------""
console.log(str.substring(-5));//-----------"0123456789"
console.log(str.substring(-10));//----------"0123456789"
console.log(str.substring(-12));//----------"0123456789"
console.log(str.substring(0,5));//----------"01234"
console.log(str.substring(0,10));//---------"0123456789"
console.log(str.substring(0,12));//---------"0123456789"
console.log(str.substring(2,0));//----------"01"
console.log(str.substring(2,2));//----------""
console.log(str.substring(2,5));//----------"234"
console.log(str.substring(2,12));//---------"23456789"
console.log(str.substring(2,-2));//---------"01"
console.log(str.substring(-1,5));//---------"01234"
console.log(str.substring(-1,-5));//--------""


varstr="0123456789";

console.log(str.substr(0));//---------------"0123456789"
console.log(str.substr(5));//---------------"56789"
console.log(str.substr(10));//--------------""
console.log(str.substr(12));//--------------""
console.log(str.substr(-5));//--------------"56789"
console.log(str.substr(-10));//-------------"0123456789"
console.log(str.substr(-12));//-------------"0123456789"
console.log(str.substr(0,5));//-------------"01234"
console.log(str.substr(0,10));//------------"0123456789"
console.log(str.substr(0,12));//------------"0123456789"
console.log(str.substr(2,0));//-------------""
console.log(str.substr(2,2));//-------------"23"
console.log(str.substr(2,5));//-------------"23456"
console.log(str.substr(2,12));//------------"23456789"
console.log(str.substr(2,-2));//------------""
console.log(str.substr(-1,5));//------------"9"
console.log(str.substr(-1,-5));//-----------""


备注

重要事项:与slice()和substr()方法不同的是,substring()不接受负的参数。

重要事项:ECMAscript没有对该方法进行标准化,因此反对使用它。substr()的参数指定的是子串的开始位置和长度,因此它可以替代substring()和slice()来使用。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: