您的位置:首页 > 其它

substr(), substring(), slice()用法及区别

2016-03-15 22:17 639 查看
一,substr()

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

   语法:stringObject.substr(start,length)。

   1: start 必需。要抽取的子串的起始下标。必须是数值。如果是负数,那么该参数声明从字符串的尾部开始算起的位置。也就是说,-1 指字符串中最后一个字符,-2 指倒数第二个字符,以此类推。

   2: length 可选。子串中的字符数。必须是数值。如果省略了该参数,那么返回从 stringObject 的开始位置到结尾的字串。

   

   demo.html

<script>
var testStr = "Hello world!";
console.log(testStr.substr(3,4)); //lo w;
console.log(testStr.substr(3)); //lo world!;
console.log(testStr.substr(3,10)); //lo world!;
console.log(testStr.substr(-1)); //!;
console.log(testStr.substr(-1,3)); //!;
</script>


二,substring()

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

   语法:stringObject.substring(start,stop)。

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

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

   注意

   1:substring() 方法返回的子串包括 start 处的字符,但不包括 end 处的字符。理论上不接受负数作为参数,但实际使用并不会报错;

   2:如果参数 start 与 end 相等,那么该方法返回的就是一个空串(即长度为 0 的字符串)。如果 start 比 end 大,那么该方法在提取子串之前会先交换这两个参数。

<script>
var testStr = "Hello world!";
console.log(testStr.substring(3,4)); //l;
console.log(testStr.substring(4,1)); //ell;
console.log(testStr.substring(3)); //lo world!;
console.log(testStr.substring(3,10)); //lo worl;
console.log(testStr.substring(-1)); //Hello world!
console.log(testStr.substring(-1,3)); //Hel;
</script>


三,slice()

   slice() 方法可提取字符串的某个部分。与substring()相似。

   语法:stringObject.slice(start,end)。

   1:start 要抽取的片断的起始下标。如果是负数,则该参数规定的是从字符串的尾部开始算起的位置。也就是说,-1 指字符串的最后一个字符,-2 指倒数第二个字符,以此类推。

   2:end 紧接着要抽取的片段的结尾的下标。若未指定此参数,则要提取的子串包括 start 到原字符串结尾的字符串。如果该参数是负数,那么它规定的是从字符串的尾部开始算起的位置。

   注意

   1:slice()函数不支持第一个参数小于第二个参数,会返回空字符;

<script>
var testStr = "Hello world!";
console.log(testStr.slice(3,4)); //l;
console.log(testStr.slice(4,1)); //空字符;
console.log(testStr.slice(3)); //lo world!;
console.log(testStr.slice(3,10)); //lo worl
console.log(testStr.slice(-1)); //!;
console.log(testStr.slice(-3)); //ld!;
console.log(testStr.slice(-1,3)); //空字符;
</script>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: