Javascript 返回子字符串方法中的错误字符

Javascript 返回子字符串方法中的错误字符,javascript,string,substring,Javascript,String,Substring,我是JS新手,我试过下面的代码 var str = "\">2\"" var res = str.substring(2,1); var str = "\">2\"" var res = str.substring(2); 返回: 应为:2 我已经用下面的代码检查过了 var str = "\">2\"" var res = str.substring(2,1); var str = "\">2\"" var res = str.substring(2); 返回:

我是JS新手,我试过下面的代码

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

应为:
2

我已经用下面的代码检查过了

var str = "\">2\""
var res = str.substring(2,1);
var str = "\">2\""
var res = str.substring(2);
返回:
“2\”

应为:
“2\”

如果我误解了什么,请告诉我,为什么它返回
而不是
2
。在C#中,它工作正常


提前感谢

事实上,在案例1中,您对它所做的操作是不正确的

当你这样做的时候

str.substring(2,1);
str.substring(2);
这实际上意味着

str.substring(1,2);

如果indexStart大于indexEnd,则substring()的效果就像两个参数被交换一样;例如,str.substring(1,0)==str.substring(0,1)

由于1,2处的字符是
,因此得到的结果相同

然而当你这样做的时候

str.substring(2,1);
str.substring(2);
实际上等于

 str.substring(2, str.length-1);
如果省略indexEnd,substring()将提取字符到字符串末尾


javascript子字符串函数的工作方式如下

字符串。子字符串(开始、结束)

在这种情况下 如果“开始”大于“结束”,它将交换两个参数:

所以答案只会

在第二种情况下

var str = "\">2\""
var res = str.substring(2);
从位置2开始提取,然后提取字符串的其余部分:

所以答案将2“

此链接将帮助您了解更多信息子字符串(2,1)仅提供第二个位置的字符,
其中as子字符串(2)从第二个位置返回字符串,直到字符串结束。

或者使用
substr