js substr和substring的区别

时间:2021-12-30 13:33:20

在js中substring和substr都是用来截取字符串的,substr函数和substring函数都是用来从某个“母字符串”中提取“子字符串”的函数。但用法有些差别,下面分别介绍但是它们还是有区别的:

substr方法:

定义和用法 

substr 方法用于返回一个从指定的位置(索引)开始到截止指定长度的子字符串。

语法 

stringvar.substr(start[,length])

参数 描述

stringvar
必选项。要提取子字符串的字符串文字或 String 对象。(对象.方法())

start 必须。所需的字符串的起始位置。字符串中的第一个字符的索引为0。

length 可选。在返回的字符串中应包括的字符个数。

说明

如果 length 为 0 或负数,将返回一个空字符串。如果没有指定该参数,则子字符串将延续到 stringvar 的最后。

功能:从“母字符串”的“指定位置”开始提取指定长度“的”子字符串

示例代码:

function SubstrDemo(){

  var s,ss;//声明变量

  var s ="The rain in Spain falls mainly in the plain.";

  ss= s.substr(12,5);//获取字符串

  return(ss);//返回"Spain"

}

--------------------------------------------------------------------------------------------------------------------------------------------------------

substring方法

功能:从“母字符串”中提取从“起始位置”到“结束位置”的“子字符串”。

使用方法:

strVariable.substring(start, end)

"String Literal".substring(start, end)

参数

start

指明子字符串的起始位置,该索引从 0 开始起算。

end

指明子字符串的结束位置,该索引从 0 开始起算。

说明
substring函数返回一个从 "start位置" 开始 到 "end-1位置" 结束(不包含 "end位置"的字符 )的子字符串。 
substring 方法使用 start 和 end 两者中的较小值作为子字符串的起始点。例如, strvar.substring(0, 3) 和 strvar.substring(3, 0) 将返回相同的子字符串。
如果 start 或 end 为 NaN 或者负数,那么将其替换为0。
子字符串的长度等于 start 和 end 之差的绝对值。例如,在 strvar.substring(0, 3) 和 strvar.substring(3, 0) 返回的子字符串的的长度是 3。

示例代码

function SubstringDemo(){
  var ss; // 声明变量。
  var s = "The rain in Spain falls mainly in the plain..";
  ss = s.substring(12, 19); // 取子字符串。
  return(ss); //”Spain f“ 返回子字符串。
}

【注意】:

空格也是一个字符