【JavaScript】slice()、substring()、substr()の違い——dream参照の2

3451 ワード

strigObject.slice(startIndex,endIndex)
文字列stingObjectは、startIndexからendIndexまでのすべての文字を返します.
1)パラメータendIndexはオプションで、指定されていない場合は、デフォルトでは文字列の長さstingObject.lengthです.
コードをダブルクリックして全選択
1
2
3var stringObject = "hello world!";alert(stringObject.slice(3)); // lo world!alert(stringObject.slice(3,stringObject.length)); // lo world!【注1】文字列の最初の文字の位置は【0】から始まり、最後の文字の位置は【stingObject.length-1】であるため、slice()メソッドが返した文字列はendIndex位置の文字を含まない.
2)startIndex、endIndexは負であってもよい.負の場合は、文字列の末尾から計算することを表す.つまり-1は文字列の最後の文字を表します.
コードをダブルクリックして全選択
1
2
3
4var stringObject = "hello world!";alert(stringObject.slice(-3)); // ld!alert(stringObject.slice(-3,stringObject.length)); // ld!alert(stringObject.slice(-3,-1)); // ld【注2】負の数を合理的に使うことでコードを簡略化することができます.
3)startIndex、endIndexはいずれもオプションです.全部書かないと文字列のstingObjectの全部を返します.slice(0)と同じです.
コードをダブルクリックして全選択
1
2
3var stringObject = "hello world!";alert(stringObject.slice()); // hello world!alert(stringObject.slice(0)); // hello world!4)startIndex、endIndexが等しい場合、空の列に戻ります.
【注3】String.slice()はAray.slice()に似ています.
コードをダブルクリックして全選択
1stringObject.substring(startIndex、endIndex)文字列stingObjectは、startIndexからendIndexまでのすべての文字を返します.
1)startIndexは負でない整数であり、必ず記入してください.endIndexは負ではない整数で、オプションです.ない場合は、デフォルトは文字列の長さstingObject.lengthです.
コードをダブルクリックして全選択
1
2
3
4var stringObject = "hello world!";alert(stringObject.substring(3)); // lo world!alert(stringObject.substring(3,stringObject.length)); // lo world!alert(stringObject.substring(3,7)); // lo w, [l][o][ ][w]2)startIndex、endIndexが等しい場合、空の列に戻ります.startIndexがendIndexより大きい場合は、サブストリングを抽出する前に、二つのパラメータを置き換える.つまり、stingObject.substring(startIndex、endIndex)は、stingObject.substring(endIndex、startIndex)と同じです.
コードをダブルクリックして全選択
1
2
3
4var stringObject = "hello world!";alert(stringObject.substring(3,3)); // alert(stringObject.substring(3,7)); // lo walert(stringObject.substring(7,3)); // lo w【注4】substring()よりもslice()の方が柔軟で、負のパラメータが受信できます.
stingObject.substr(startIndex,length)
文字列stingObjectを返します.startIndexから指定された数の文字を含みます.
1)startIndexは必ず記入しなければなりません.負の数でもいいです.負の場合は、文字列の末尾から計算することを表す.つまり-1は文字列の最後の文字を表します.
2)パラメータlengthはオプションで、指定されていない場合はデフォルトでは文字列の長さstingObject.lengthとなります.
コードをダブルクリックして全選択
1
2
3
4var stringObject = "hello world!";alert(stringObject.substr(3)); // lo world!alert(stringObject.substr(3,stringObject.length)); // lo world!alert(stringObject.substr(3,4)); // lo w3)substr()はslice()とsubstring()の代わりに使えます.上のコードからstingObject.substr(3,4)はstrigObject.substring(3,7)と同じです.
【注5】ECMAscriptはこの方法を標準化していないので、この方法はできるだけ使わないようにします.