最もひどいこと!次のコードは、予想される「wo」の代わりに「llo」を出力します。他のいくつかの数値についても驚くべき結果が得られました。ここで何が欠けていますか?
alert('helloworld'.substring(5, 2));
最もひどいこと!次のコードは、予想される「wo」の代わりに「llo」を出力します。他のいくつかの数値についても驚くべき結果が得られました。ここで何が欠けていますか?
alert('helloworld'.substring(5, 2));
あなたは混乱してsubstring()
おり、substr()
:substring()
はオフセットと長さではなく、2 つのインデックスを期待しています。あなたの場合、インデックスは 5 と 2 です。つまり、より高いインデックスが除外されるため、文字 2..4 が返されます。
substring
構文を確認してください:
部分文字列 (から、へ)
から 必須。抽出を開始するインデックス。最初の文字はインデックス 0 です
オプションに。抽出を停止するインデックス 。省略した場合、残りの文字列を抽出します
少し奇妙だと思います。それは自分でも知りませんでした。
あなたがしたいことは
alert('helloworld'.substring(5, 7));
alert('helloworld'.substring(5, 2));
上記のコードは、最初の値が始点から終点までであるため、間違っています。たとえば、char 5 から移動し、o
char 2 に移動すると、次のl
ようになりllo
ます。
あなたが欲しいのは
alert('helloworld'.substring(5, 7));
以下の構文を参照してください。
str.substring(indexA, [indexB])
の場合indexA > indexB
、substring()
関数は引数が逆であるかのように動作します。
ここでドキュメントを検討してください: https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/substring
これは私がやったことです...
var stringValue = 'Welcome to India';
// if you want take get 'India'
// stringValue.substring(startIndex, EndIndex)
stringValue.substring(11, 16); // O/p 'India'