2017-05-05 98 views
2

我遇到了substr()JavaScript問題。
請看下面的代碼。意外的結果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); 

有人能解釋我有什麼不對?

謝謝,

+0

@exebook如果我不知道子字符串是什麼存在? – Nathan

+0

即使不知道'substring'是否存在,它會花費最少的研究來了解'substr'不能像你以前那樣工作。 – Shaggy

回答

4

.substr(4,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);

1

String.substr第二個參數指定字符的數量來提取

您的代碼應該如下所示:

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

substr()有指定起始索引和長度來提取兩個參數。

您可能會混淆它與.substring()方法,它採用兩個參數的開始索引和結束索引。

2

JavaScript的substr命令的語法是:string.substr(start,length)。因此,該行代碼應爲:

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

SUBSTR函數的參數是開始和長度,沒有開始和結束

在控制檯中,你可以看到這一點:

"ABCDEFGHIJKL".substr(0,4) 
"ABCD" 

"ABCDEFGHIJKL".substr(4,6) 
"EFGHIJ" 

"ABCDEFGHIJKL".substr(4,2) 
"EF" 

所以你想要的是

.substr(4,2)