搜索
首页头条JS截取与分割字符串方法:substring、substr、slice的区别

这三个方法都是提取字符串里面子串的方法,虽然平时使用挺多,但是每次都要去看文档以防参数传递错误。下面对这三个方法做一个详细的区别。

substring

String.substring(x,y): 
x:必需。一个非负的整数,规定要提取的子串的第一个字符在 stringObject 中的位置。 
y:可选。一个非负的整数,比要提取的子串的最后一个字符在 stringObject 中的位置+ 1。

/2个参数的情况"abcdefg".substring(1,4); //"bcd"//1个参数的情况:返回开始位置到字符串的结尾"abcdefg".substring(1); //"bcdefg"//如果x=y:返回一个空串(即长度为 0 的字符串)"abcdefg".substring(1,1); //""//如果x>y:先交换这两个参数然后同第一种情况"abcdefg".substring(4,1); //"bcd"//如果x<0或y<0;会把小于0的参数当作0处理(理论上不接受负数);"abcdefg".substring(1,-4); 
=》"abcdefg".substring(1,0); 
=》"abcdefg".substring(0,1); //"a"

本文实例讲述了JS截取与分割字符串的常用方法。分享给大家供大家参考,具体如下:

JS截取字符串可使用 substring()或者slice()
 

函数: substring()
定义: substring(start,end)表示从start到end之间的字符串,包括start位置的字符但是不包括end位置的字符。
功能: 字符串截取,比如想从"MinidxSearchEngine"中得到"Minidx"就要用到substring(0,6)


例子:

var src="images/off_1.png";
alert(src.substring(7,10));
//弹出值为:off

函数:substr()

定义:substr(start,length)表示从start位置开始,截取length长度的字符串。

功能:字符串截取

例子:

var src="images/off_1.png";
alert(src.substr(7,3));
//弹出值为:off

函数:split()

功能:使用一个指定的分隔符把一个字符串分割存储到数组

例子:

str="jpg|bmp|gif|ico|png";
arr=theString.split("|");
//arr是一个包含字符值"jpg"、"bmp"、"gif"、"ico"和"png"的数组

函数:John()

功能:使用您选择的分隔符将一个数组合并为一个字符串

例子:

var delimitedString=myArray.join(delimiter);
var myList=new Array("jpg","bmp","gif","ico","png");
var portableList=myList.join("|");
//结果是jpg|bmp|gif|ico|png

函数:indexOf()

功能:返回字符串中匹配子串的第一个字符的下标

var myString="JavaScript";
var w=myString.indexOf("v");w will be 2
var x=myString.indexOf("S");x will be 4
var y=myString.indexOf("Script");y will also be 4
var z=myString.indexOf("key");z will be -1

函数:lastIndexOf()

定义:lastIndexOf()方法返回从右向左出现某个字符或字符串的首个字符索引值(与indexOf相反)

功能:返回字符串索引值

var src="images/off_1.png";
alert(src.lastIndexOf(&#39;/&#39;));
alert(src.lastIndexOf(&#39;g&#39;));
//弹出值依次为:6,15

补充:substr 和 substring方法的区别

substr 方法

返回一个从指定位置开始的指定长度的子字符串。

stringvar.substr(start [, length ])

参数

stringvar 必选项。要提取子字符串的字符串文字或 String 对象。

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

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

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

示例 下面的示例演示了substr 方法的用法。

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 方法

返回位于 String 对象中指定位置的子字符串。

strVariable.substring(start, end)
"String Literal".substring(start, end)

参数

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

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

说明 substring 方法将返回一个包含从 start 到最后(不包含 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。

示例

下面的示例演示了 substring 方法的用法。

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

slice

String.slice(x,y): 
x:必需。要抽取的片断的起始下标。如果是负数,则该参数规定的是从字符串的尾部开始算起的位置。也就是说,-1 指字符串的最后一个字符,-2 指倒数第二个字符,以此类推。 
y:可选。要抽取的片段的结尾的下标+1。若未指定此参数,则要提取的子串包括 start 到原字符串结尾的字符串。如果该参数是负数,那么它规定的是从字符串的尾部开始算起的位置。

//2个参数的情况"abcdefg".slice(1,4); //"bcd"//1个参数的情况:返回开始位置到字符串的结尾"abcdefg".slice(1); //"bcdefg"//如果x=y:返回一个空串(即长度为 0 的字符串)"abcdefg".slice(1,1); //""//如果x>y:返回一个空串(即长度为 0 的字符串)"abcdefg".slice(4,1); //""//如果x<0:从字符串的尾部开始算起的位置,-1 指字符串的最后一个字符,-2 指倒数第二个字符//如果y<0:从字符串的尾部开始算起的位置,-1 指字符串的最后一个字符,-2 指倒数第二个字符"abcdefg".slice(-1,8);//g"abcdefg".slice(1,-4); //bc12345678910111213141516
*因为slice不能像substring一样当x

substr

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

//2个参数的情况"abcdefg".substr(1,4); //"bcde"//1个参数的情况:返回开始位置到字符串的结尾"abcdefg".substr(1); //"bcdefg"//如果x<0;从字符串的尾部开始算起的位置。-1 指字符串中最后一个字符,-2 指倒数第二个字符,以此类推。"abcdefg".substr(-1);//g "abcdefg".substr(-1,1);//g123456789
重要事项:ECMAscript 没有对该方法进行标准化,因此反对使用它。

重要事项:在 IE 4 中,参数 start 的值无效。在这个 BUG 中,start 规定的是第 0 个字符的位置。在之后的版本中,此 BUG 已被修正。123

总结

三个方法的第一个参数都是开始的位置,substring和slice的第二个参数是结束的位置(不包括该位置),slice和substr可以接受负值但是substr第二个参数是长度。

那么问题来了,怎么获取一个字符串的最后一个字符呢?

"abcdefg".substring(length-1);//g "abcdefg".slice(-1);//g "abcdefg".substr(-1);//g"abcdefg".charAt(length-1);//g 1234


声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

SecLists

SecLists

SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )专业的PHP集成开发工具

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中