web-dev-qa-db-ja.com

javascriptサブストリング

最もひどいこと!次のコードは、予想される「wo」の代わりに「llo」を出力します。他のいくつかの数値についても、このような驚くべき結果が得られます。ここで何が欠けていますか?

alert('helloworld'.substring(5, 2));
68
akula1001

混乱している substring() および substr()substring()は、オフセットと長さではなく、2つのインデックスを想定しています。あなたの場合、インデックスは5と2です。つまり、より高いインデックスが除外されると、文字2..4が返されます。

100
Christoph

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'
48
Chirag

substringを確認してください syntax

substring(from、to)

from必須。抽出を開始するインデックス。最初の文字はインデックス0にあります

toオプション。抽出を停止するインデックス。省略した場合、残りの文字列を抽出します

少し奇妙なことを認めます。私はそれを知りませんでした。

やりたいことは

alert('helloworld'.substring(5, 7));
14
Pekka 웃

以下の構文を参照してください。

_str.substring(indexA, [indexB])
_

_indexA > indexB_の場合、substring()関数は引数が逆になったように動作します。

ここでドキュメントを検討してください: https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/substring

2
alert('helloworld'.substring(5, 2));

最初の値が開始点から終了点になっているため、上記のコードは間違っています。たとえば、oであるchar 5からlであるchar 2に移動すると、lloそれで、後方に進むように指示しました。

ゆううが欲しいのは

alert('helloworld'.substring(5, 7));
2
AutomatedTester

これは私がやったことです、

var stringValue = 'Welcome to India';

// if you want take get 'India' 
// stringValue.substring(startIndex, EndIndex)
   stringValue.substring(11, 16); // O/p 'India'
0