スライス()
定義: 1 つまたは 2 つのパラメーターを受け入れ、最初のパラメーターは部分文字列の開始位置を指定します。 2 番目のパラメーターは部分文字列の終了位置を表します (終了位置の文字を除く)。2 番目のパラメーターが渡されない場合、文字列の長さが終了位置として使用されます。
1. 渡されたパラメータが正の値の場合:
var str ="helloWorld"; // 一个参数,则将字符串长度作为结束位置 alert(str.slice(3)); // "loWorld" // 两个参数,7位置上的字符为"r",但不包括结束位置的字符 alert(str.slice(3,7)); // "loWo"
2. 渡されたパラメータが負の値の場合:
slice() メソッドは、渡された負の値を文字列の長さに加算します。
var str ="helloWorld"; // 一个参数,与字符串长度相加即为slice(7) alert(str.slice(-3)); // "rld" // 两个参数,与字符串长度相加即为slice(3,6) alert(str.slice(3,-4)); // "loW"
3. 2 番目のパラメータが最初のパラメータより小さい場合:
slice() メソッドによって渡された 2 番目のパラメーターが最初のパラメーターより小さい場合、空の文字列が返されます。
var str ="helloWorld"; alert(str.slice(5,3)); // ""
4. IE の互換性
IE8 ブラウザでテストした場合、問題はなく、動作は最新のブラウザと一致しています。
部分文字列()
定義: 1 つまたは 2 つのパラメーターを受け入れ、最初のパラメーターは部分文字列の開始位置を指定します。 2 番目のパラメーターは部分文字列の終了位置を表します (終了位置の文字を除く)。2 番目のパラメーターが渡されない場合、文字列の長さが終了位置として使用されます。
1.渡されたパラメータが正の値の場合:slice()メソッドと同じ動作
var str ="helloWorld"; // 一个参数,则将字符串长度作为结束位置 alert(str.substring(3)); // "loWorld" // 两个参数,7位置上的字符为"r",但不包括结束位置的字符 alert(str.substring(3,7)); // "loWo"
2. 渡されたパラメータが負の値の場合:
substring()方法会把所有负值参数转换为0。来看下例子: var str ="helloWorld"; // 两个参数,-4会转换为0,相当于substring(3,0) -->即为 substring(0,3) alert(str.substring(3,-4)); // "hel"
substring() メソッドは、小さい方の数値を開始位置として使用し、大きい方の数値を終了位置として使用します。上の例と同様、substring(3,0) と substring(0,3) は同じ効果があります。
4. IE の互換性
IE8 ブラウザでテストした場合、問題はなく、動作は最新のブラウザと一致しています。
substr()
定義: 1 つまたは 2 つのパラメーターを受け入れ、最初のパラメーターは部分文字列の開始位置を指定します。 2 番目のパラメーターは前のメソッドとは多少異なり、返される文字数を示します。 2 番目の引数が渡されない場合は、文字列の長さが終了位置として使用されます。例を見てみましょう:
1. 渡されたパラメータが正の値の場合:
var str ="helloWorld"; // 一个参数,则将字符串长度作为结束位置 alert(str.substr(3)); // "loWorld" // 两个参数,从位置3开始截取后面7个字符 alert(str.substr(3,7)); // "loWorld"
2. 渡されたパラメータが負の値の場合:
substr() メソッドは、負の最初のパラメーターを文字列の長さに追加し、負の 2 番目のパラメーターを 0 に変換します。
var str ="helloWorld"; // 将第一个负的参数加上字符串的长度---> //即为:substr(7,5) ,从位置7开始向后截取5个字符 alert(str.substr(-3,5)); // "rld" // 将第二个参数转换为0 // 即为:substr(3,0),即从位置3截取0个字符串,则返回空 alert(str.substr(3,-2)); // ""
3. IE の互換性
substr() メソッドは負の値を渡すと問題が発生し、元の文字列が返されます。 IE9 ではこの問題が修正されています。
概要
正のパラメータを渡す場合、slice() と substring () の動作は一貫しており、substr() メソッドは 2 番目のパラメータで混乱しやすくなります
負のパラメータを渡す場合、slice() メソッドは文字列の長さを追加します。これは、substring() の 2 番目のパラメータを 0 に変換すると問題が発生しやすく、開始位置が簡単になります。
を変更します。substr() メソッドに負の値がある場合、IE の互換性の問題が発生する可能性があります。
要約すると、一般的には、slice() メソッドを使用することをお勧めします。