>  기사  >  JS 가로채기 및 문자열 분할 방법: 하위 문자열, 하위 문자열 및 슬라이스 간의 차이점

JS 가로채기 및 문자열 분할 방법: 하위 문자열, 하위 문자열 및 슬라이스 간의 차이점

PHP中文网
PHP中文网원래의
2018-01-25 14:10:343072검색

이 세 가지 방법은 모두 문자열에서 부분 문자열을 추출하는 방법이지만 일반적으로 사용되는 방법이지만 매개변수 전송 오류를 방지하려면 매번 문서를 읽어야 합니다. 다음은 이 세 가지 방법의 자세한 차이점입니다.

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()를 사용할 수 있습니다

Function: substring()
정의: substring(start, end)는 시작 위치의 문자는 포함하지만 끝 위치의 문자는 제외하여 처음부터 끝까지 문자열을 나타냅니다.
기능: 문자열 차단, 예를 들어 "MinidxSearchEngine"에서 "Minidx"를 얻으려면 하위 문자열(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으로 문의하세요.