【问题标题】:Returns the wrong character in SubString method在 SubString 方法中返回错误的字符
【发布时间】:2017-12-31 07:07:06
【问题描述】:
我是 JS 新手,我试过下面的代码,
var str = "\">2\""
var res = str.substring(2,1);
返回: >
预期: 2
我已经通过下面的代码检查了这个,
var str = "\">2\""
var res = str.substring(2);
返回: "2\"
预期: "2\"
如果我有任何误解,请告诉我,为什么它返回 > 而不是 2。在 C# 中它可以正常工作。
提前致谢
【问题讨论】:
标签:
javascript
string
substring
【解决方案1】:
实际上你做的不正确,以防万一
当你这样做时
str.substring(2,1);
这实际上意味着
str.substring(1,2);
来自docs
如果 indexStart 大于 indexEnd,那么 substring() 的效果就像两个参数交换了一样;例如,str.substring(1, 0) == str.substring(0, 1)。
由于 1,2 处的字符是 >,所以你得到的结果是一样的。
但是当你这样做时
str.substring(2);
实际上等于
str.substring(2, str.length-1);
如果 indexEnd 被省略,substring() 将字符提取到字符串的末尾。
【解决方案2】:
substring(2,1) 只给你第二个位置的字符,
其中 substring(2) 从第二个位置返回字符串直到字符串的末尾。
【解决方案3】:
javascript 子字符串函数将像这样工作
string.substring(start, end)
var str = "\">2\""
var res = str.substring(2,1);
在这种情况下
如果 "start" 大于 "end",它将交换两个参数:
所以回答只会>
第二种情况
var str = "\">2\""
var res = str.substring(2);
从位置 2 开始提取,然后提取字符串的其余部分:
所以答案将 2"
此链接将帮助您获得更多信息javascript substring function