转载原文https://blog.csdn.net/u014291497/article/details/50900617
作者:justforuse
一,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>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
二,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>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
三,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>