2017-07-25 76 views
4

我是新來的JS,我已經嘗試下面的代碼,返回字符串的方法錯誤的字符

var str = "\">2\"" 
var res = str.substring(2,1); 

返回:>

預計:2

我有通過以下代碼進行檢查,

var str = "\">2\"" 
var res = str.substring(2); 

返回:"2\"

預計:"2\"

請讓我知道,如果我誤解了什麼,爲什麼它返回>,而不是2。在C#中它正常工作。

在此先感謝

回答

6

其實你正在做它的情況下,1

當你

str.substring(2,1); 

這實際上意味着

str.substring(1,2); 

docs

不正確10

如果indexStart大於indexEnd,那麼substring()的作用就好像兩個參數交換一樣;例如,str.substring(1,0)== str.substring(0,1)。

因爲在1,2的字符是>,你會得到相同的。

但是當你做

str.substring(2); 

它實際上等於

str.substring(2, str.length-1); 

如果省略indexEnd,子()提取字符的字符串的結尾。

+1

或者使用'substr'。 – Andy

0

的JavaScript字符串函數會像這樣

字符串。子(開始,結束)

var str = "\">2\"" 
var res = str.substring(2,1); 

在這種情況下 如果 「開始」 是不是 「結束」 時,就會交換兩個參數:

所以答案>

和在第二種情況下

var str = "\">2\"" 
var res = str.substring(2); 

開始第2位的提取,提取字符串的其餘部分:

這樣回答會2"

這個鏈接將幫助您更多的imformation javascript substring function

0

子(2,1 )僅給出第二個位置的字符, 其中substring(2)從第二個位置返回字符串直到字符串結束。