JavaScript substr()出乎意料的结果



我在JavaScript中的substr((有问题。
请查看下面的代码。

以下作用如预期。 y = 2017

var add_date = "20170505";
var y = add_date.substr(0, 4);
alert(y);

但是...以下内容不起作用。它应该返回'05',而是返回0505。 m = 0505

var add_date = "20170505";
var m = add_date.substr(4, 6);
alert(m);

有人可以解释我怎么了?

谢谢,

Nathan

.substr(4,6)方法返回 6 从索引4开始的字符。改用.substring

var add_date = "20170505",
    y = add_date.substring(0, 4);
    console.log(y);
var add_date = "20170505",
    m = add_date.substring(4, 6);
    console.log(m);

javaScript的subttr命令的语法为: string.substr(start,length(。因此,代码线应读取:

var m = add_date.substr(4, 2);

String.substr的第二个参数指定的字符数提取

您的代码应如下:

var add_date = "20170505";
var m = add_date.substr(4, 2);
alert(m);

substr() 有两个参数,可以指定起始索引和提取长度。

您可能会将其与 .substring() 进行混淆,该方法采用了两个开始索引和结束索引的参数。

subtr函数的参数是开始和长度,而不是启动和结束

在控制台中您可以看到:

"ABCDEFGHIJKL".substr(0,4)
"ABCD"
"ABCDEFGHIJKL".substr(4,6)
"EFGHIJ"
"ABCDEFGHIJKL".substr(4,2)
"EF"

所以你想要的是

.substr(4,2)

最新更新