JavaScript截取指定数目字符|String Substr() 方法
定义与用法
substr() 方法可在字符串中抽取从 开始 下标开始的指定数目的字符。
提示:
- substr() 方法不会改变源字符串。
- substr() 的参数指定的是子串的开始位置和长度,因此它可以替代 substring() 和 slice() 来使用。
- 在 IE 4 中,参数 start 的值无效。在这个 BUG 中,start 规定的是第 0 个字符的位置。在之后的版本中,此 BUG 已被修正。
- ECMAscript 没有对该方法进行标准化,因此反对使用它。
语法格式
string.substr( start, length)
示例代码
抽取指定数目的字符:
var str="Hello world!";
var n=str.substr(2,3)
n 输出结果:
llo
浏览器支持
方法 | |||||
---|---|---|---|---|---|
Substr() | Yes | Yes | Yes | Yes | Yes |
所有主要浏览器都支持 substr() 方法
参数说明
参数 | 描述 |
---|---|
start | 必需。要抽取的子串的起始下标。必须是数值。如果是负数,那么该参数声明从字符串的尾部开始算起的位置。也就是说,-1 指字符串中最后一个字符,-2 指倒数第二个字符,以此类推。 |
length | 可选。子串中的字符数。必须是数值。如果省略了该参数,那么返回从 stringObject 的开始位置到结尾的字串。 |
返回值
类型 | 描述 |
---|---|
String | A new string containing the extracted part of the text |
技术细节
JavaScript 版本: | 1.0 |
---|
Slice,Substr和Substring的区别
他们都接收两个参数,slice和substring接收的是起始位置和结束位置(不包括结束位置),而substr接收的则是起始位置和所要返回的字符串长度。
var test = 'hello world';
var n1=test.slice(4,7);
var n2=test.substring(4,7);
var n2=test.substr(4,7);
以上实例输出结果:
o w
o w
o world
有个需要注意的地方就是:substring是以两个参数中较小一个作为起始位置,较大的参数作为结束位置。
var n1=test.substring(7,4); //o w
以上实例输出结果:
o w
当接收的参数是负数时:
- slice会将它字符串的长度与对应的负数相加,结果作为参数;
- substr则仅仅是将第一个参数与字符串长度相加后的结果作为第一个参数;
- substring则干脆将负参数都直接转换为0。
var test = 'hello world';
alert(test.slice(-3)); //rld
alert(test.substring(-3)); //hello world
alert(test.substr(-3)); //rld
alert(test.slice(3,-4)); //lo w
alert(test.substring(3,-4)); //hel
alert(test.substr(3,-4)); //空字符串
更多示例
在本例中,我们将使用 substr() 从字符串第二个位置中提取一些字符:
var str="Hello world!";
var n=str.substr(2)
n 输出结果:
llo world!