【问题标题】: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() 将字符提取到字符串的末尾。

    【讨论】:

    • 或者使用substr
    【解决方案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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-07-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-03-15
        相关资源
        最近更新 更多