Javascript子串比较;我疯了吗?

时间:2017-02-07 15:56:57

标签: javascript substring

根据我的理解,JavaScript的子串方法有两个参数:第一个是从哪里开始的索引,第二个是结束点(非索引类型计数,也就是字符数不是0-开始),它不是包括端点char。按照这个逻辑,我运行了两个例子:

这个第一个例子正如预期的那样工作,我计算了13个字符,因为第13个字符是结束点而不会被包括在内。

// goal was to print "Melbourne is"
alert("Melbourne is great".substring(0,13));

然而这个例子失败了。在这个例子中,我也在结束点停止了我的计数,因为我预计它不会被计算在内。

//goal was to print "Jan"
alert("January".substring(0,4)); 

我的理解在哪里有缺陷?

2 个答案:

答案 0 :(得分:7)

  

JavaScript的子串方法有两个参数:第一个是从哪里开始的索引,第二个是结束点(非索引类型计数,也就是字符数不是0-开始),它不是包括端点char

您对此理解不正确。您正在描述.substr()的功能。 .substring()使用两个索引。

答案 1 :(得分:2)

你疯了的原因是因为功能

alert("Melbourne is great".substring(0,13)); 
//prints Melbourne_is_ not Melbourne_is

注意

之后的空格

别发疯了! :)