substr函数和substring函数都是用来从某个“母字符串”中提取“子字符串”的函数。但用法有些差别,下面分别介绍
substr 方法
定义和用法
substr 方法用于返回一个从指定位置开始的指定长度的子字符串。
语法
stringobject.substr(start [, length ])
参数 描述
start 必需。所需的子字符串的起始位置。字符串中的第一个字符的索引为 0。
length 可选。在返回的子字符串中应包括的字符个数。
说明
如果start为负数,则start=str.length+start。
如果 length 为 0 或负数,将返回一个空字符串。
如果没有指定该参数,则子字符串将延续到stringobject的最后。
功能:从“母字符串”的“指定位置”开始提取“指定长度”的“子字符串”。
使用方法:
复制代码 代码如下:
字符串数据.substr(start [,length])
start是必选项。指明要提取的“子字符串”的起始位置。字符串中的第一个字符的索引为 0。
length是可选项。指明要提取的“子字符串”中应包括的字符个数。如果 length 为 0 或负数,将返回一个空字符串。如果没有指定该参数,则子字符串将延续到“母字符串”的最后。
下面的示例演示了substr函数的用法。
复制代码 代码如下:
母串 = 上海自来水来自海上;
子串1 = 母串.substr(2,4);
//从编号为2的字符开始,提取4个长度的子字符串。 返回值: 自来水来
子串2 = 母串.substr(2);
//从编号为2的字符开始,到最后一个字符的子字符串。 返回值: 自来水来自海上
复制代码 代码如下:
var stringobject = hello world!;
alert(stringobject.substr(3)); // lo world!
alert(stringobject.substr(3,stringobject.length)); // lo world!
alert(stringobject.substr(3,4)); // lo w
举例:
复制代码 代码如下:
var str = 0123456789;
alert(str.substring(0));------------0123456789
alert(str.substring(5));------------56789
alert(str.substring(10));-----------
alert(str.substring(12));-----------
alert(str.substring(-5));-----------0123456789
alert(str.substring(-10));----------0123456789
alert(str.substring(-12));----------0123456789
alert(str.substring(0,5));----------01234
alert(str.substring(0,10));---------0123456789
alert(str.substring(0,12));---------0123456789
alert(str.substring(2,0));----------01
alert(str.substring(2,2));----------
alert(str.substring(2,5));----------234
alert(str.substring(2,12));---------23456789
alert(str.substring(2,-2));---------01
alert(str.substring(-1,5));---------01234
alert(str.substring(-1,-5));--------
alert(str.substr(0));---------------0123456789
alert(str.substr(5));---------------56789
alert(str.substr(10));--------------
alert(str.substr(12));--------------
alert(str.substr(-5));--------------56789
alert(str.substr(-10));-------------0123456789
alert(str.substr(-12));-------------0123456789
alert(str.substr(0,5));-------------01234
alert(str.substr(0,10));------------0123456789
alert(str.substr(0,12));------------0123456789
alert(str.substr(2,0));-------------
alert(str.substr(2,2));-------------23
alert(str.substr(2,5));-------------23456
alert(str.substr(2,12));------------23456789
alert(str.substr(2,-2));------------
alert(str.substr(-1,5));------------9
alert(str.substr(-1,-5));-----------
substring函数
功能:从“母字符串”中提取从“起始位置”到“结束位置”的“子字符串”。
使用方法:字符串数据.substring(start,end)
start参数指明子字符串中“第一个字符”的位置。
end参数指明子字符串中“最后一个字符”的“后面一个字符”的位置。
substring函数返回一个从 start位置 开始 到 end-1位置 结束(不包含 end位置的字符 )的子字符串。
substring函数使用 start 和 end 两者中的较小值作为子字符串的起始点。例如,字符串数据.substring(0,3) 和 字符串数据.substring(3,0) 将返回相同的子字符串。
如果 start 或 end 为 nan 或者负数,那么将其替换为0。
子字符串的长度等于 start 和 end 之差的绝对值。例如,字符串数据.substring(0,3) 和 字符串数据.substring(3,0) 返回的子字符串的的长度是 3。
下面的示例演示了substring函数的用法。
例
[ctrl+a 全选 注:如需引入外部js需刷新才能执行]
2)如果startindex、endindex 相等,则返回空串。如果startindex 比 endindex 大,则提取子串之前,调换两个参数。即stringobject.substring(startindex,endindex)等同于stringobject.substring(endindex,startindex)
复制代码 代码如下:
var stringobject = hello world!;
alert(stringobject.substring(3,3)); // 空串
alert(stringobject.substring(3,7)); // lo w
alert(stringobject.substring(7,3)); // lo w
复制代码 代码如下:
母串 = 上海自来水来自海上;
子串 = 母串.substring(2,4);
//从“编号为2”的字符开始,到“编号为(4-1)”的字符结束的子字符串。返回值: 自来
substr()可以代替substring()来使用,从上面代码看出 stringobject.substr(3,4) 等同于stringobject.substring(3,7)