JavaScript截取指定数目字符|String Substr() 方法

JavaScript String 对象


定义与用法

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

亲自试试


浏览器支持

方法Google ChromeInternet ExplorerFirefoxSafariOpera
Substr()YesYesYesYesYes

所有主要浏览器都支持 substr() 方法


参数说明

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

返回值

类型描述
StringA 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!

亲自试试


JavaScript String 对象


相关