よく使用されるインターセプト文字列 substr()、substring()、slice() メソッドの詳細説明_JavaScript スキル

WBOY
リリース: 2016-05-16 15:25:26
オリジナル
1934 人が閲覧しました

スライス()

定義: 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() メソッドを使用することをお勧めします。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート