javascript substr和substring用法比较

  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)