これら 3 つの方法はいずれも文字列から部分文字列を抽出するための方法であり、一般的に使用されますが、パラメーター転送エラーを防ぐために毎回ドキュメントを読む必要があります。これら 3 つの方法の詳細な違いを次に示します。
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() またはスライス() を使用できます
関数: | substring() |
定義: | substring(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('/')); alert(src.lastIndexOf('g')); //弹出值依次为: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"//If x重要: ECMAscript はこのメソッドを標準化していないため、その使用は推奨されません。
重要: IE 4 では、パラメーター start の値は無効です。このバグでは、start は 0 番目の文字の位置を指定します。このバグは後のバージョンで修正されています。 123
概要
3 つのメソッドの最初のパラメータは開始位置、substring とスライスの 2 番目のパラメータは終了位置 (この位置を除く)、slice と substr は負の値を受け入れることができますが、substr の 2 番目のパラメータは長さ。
それでは、文字列の最後の文字をどのように取得するかが問題です。
"abcdefg".substring(length-1);//g "abcdefg".slice(-1);//g "abcdefg".substr(-1);//g"abcdefg".charAt(length- 1);//g 1234