且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

js中substring()和substr()的使用及区别

更新时间:2021-09-22 22:49:37

一、substring()

1.1 定义

substring() 方法用于提取字符串中介于两个指定下标之间的字符。

1.2语法

stringObject.substring(start[,stop])
参数 描述
start 必需。一个非负的整数,规定要提取的子串的第一个字符在 stringObject 中的位置。
stop 可选。一个非负的整数,规定要提取的子串的截止位置,包头不包尾。
说明
  • 包头不包尾,即:返回的子串包括 start 处的字符,但不包括 stop 处的字符。
  • 如果省略stop该参数,那么返回的子串会一直到字符串的结尾。
  • stop不能接受负的参数,直接返回了整个字符串。
  • 如果参数 start 与 stop 相等,那么该方法返回的就是一个空串(即长度为 0 的字符串)
  • 如果 start 比 stop 大,那么该方法在提取子串之前会先交换这两个参数。

1.3 返回值

返回一个新的字符串,该字符串值包含 stringObject 的一个子字符串,其内容是从 start 处到 stop-1 处的所有字符,其长度为 stop 减 start。

1.4 测试

var str = '0123456789';
var str1 = str.substring(1,4);
var str2 = str.substring(2);
var str3 = str.substring(4,2);
var str4 = str.substring(4,4);
var str5 = str.substring(-2);
var str6 = str.substring(11);
console.log("str1: "+str1+"\nstr2: "+str2+"\nstr3: "+str3+"\nstr4: "+str4+"\nstr5: "+str5+"\nstr6: "+str6)

js中substring()和substr()的使用及区别

二、substr()

2.1 定义

substr() 方法可在字符串中抽取从 start 下标开始的指定数目的字符。

2.2 语法

stringObject.substr(start[,len])
参数 描述
start 必需。要抽取的子串的起始下标。必须是数值。
length 可选。子串中的字符数。必须是数值。如果省略了该参数,那么返回从 stringObject 的开始位置到结尾的字串。
说明
  • start必须是数值。
  • start如果是负数,那么该参数声明从字符串的尾部开始算起的位置。也就是说,-1 指字符串中最后一个字符,-2 指倒数第二个字符,以此类推。
  • 如果省略了length该参数,那么返回从 stringObject 的开始位置到结尾的字串。
  • 重要事项:ECMAscript 没有对该方法进行标准化,因此反对使用它。在某些浏览器中start下标使用负值,直接返回了全部字符串。

2.3 返回值

返回一个新的字符串,包含从 stringObject 的 start(包括 start 所指的字符) 处开始的 len 个字符。如果没有指定 len,那么返回的字符串包含从 start 到 stringObject 的结尾的字符。

2.4 测试

var str = '0123456789';
var str1 = str.substr(1,4);
var str2 = str.substr(2);
var str3 = str.substr(4,2);
var str4 = str.substr(4,4);
var str5 = str.substr(-2);
var str6 = str.substr(11);
console.log("str1: "+str1+"\nstr2: "+str2+"\nstr3: "+str3+"\nstr4: "+str4+"\nstr5: "+str5+"\nstr6: "+str6)

js中substring()和substr()的使用及区别