cari
Rumahtajuk utamaJS截取与分割字符串方法: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


Kenyataan
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Muat turun versi mac editor Atom

Muat turun versi mac editor Atom

Editor sumber terbuka yang paling popular

EditPlus versi Cina retak

EditPlus versi Cina retak

Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Pelayar Peperiksaan Selamat

Pelayar Peperiksaan Selamat

Pelayar Peperiksaan Selamat ialah persekitaran pelayar selamat untuk mengambil peperiksaan dalam talian dengan selamat. Perisian ini menukar mana-mana komputer menjadi stesen kerja yang selamat. Ia mengawal akses kepada mana-mana utiliti dan menghalang pelajar daripada menggunakan sumber yang tidak dibenarkan.

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.