最もひどいこと!次のコードは、予想される「wo」の代わりに「llo」を出力します。他のいくつかの数値についても、このような驚くべき結果が得られます。ここで何が欠けていますか?
alert('helloworld'.substring(5, 2));
混乱している substring()
および substr()
:substring()
は、オフセットと長さではなく、2つのインデックスを想定しています。あなたの場合、インデックスは5と2です。つまり、より高いインデックスが除外されると、文字2..4が返されます。
Javascriptには3つのオプションがあります。
//slice
//syntax: string.slice(start [, stop])
"Good news, everyone!".slice(5,9); // extracts 'news'
//substring
//syntax: string.substring(start [, stop])
"Good news, everyone!".substring(5,9); // extracts 'news'
//substr
//syntax: string.substr(start [, length])
"Good news, everyone!".substr(5,4); // extracts 'news'
substring
を確認してください syntax :
substring(from、to)
from必須。抽出を開始するインデックス。最初の文字はインデックス0にあります
toオプション。抽出を停止するインデックス。。省略した場合、残りの文字列を抽出します
少し奇妙なことを認めます。私はそれを知りませんでした。
やりたいことは
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
alert('helloworld'.substring(5, 2));
最初の値が開始点から終了点になっているため、上記のコードは間違っています。たとえば、o
であるchar 5からl
であるchar 2に移動すると、llo
それで、後方に進むように指示しました。
ゆううが欲しいのは
alert('helloworld'.substring(5, 7));
これは私がやったことです、
var stringValue = 'Welcome to India';
// if you want take get 'India'
// stringValue.substring(startIndex, EndIndex)
stringValue.substring(11, 16); // O/p 'India'