首页 文章

在JS中创建月份常量

提问于
浏览
-1

我需要创建一个包含字符串'JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC'的常量

到目前为止,我的代码正处于警戒阶段;

<html>
<head>
<script>
MONTHS = 'JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC'; //months

var dateString = prompt('Enter your birth date in the form dd mmm yyyy','26 APR 1988'); //get        users date of birth
var substrings = dateString.split('');
var day = substrings[0];
var month = substrings[1];
var year = substrings[2];

var pos = months.indexOf(month);
if (pos >= 0) {

}

alert(months.indexOf(month));
</script>
</head>
<body>

</body>
<html>

当我用'JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC'替换它时它工作正常; var months = ["JAN","FEB","MAR","APR","MAY","JUN","JUL","AUG","SEP","OCT",
"NOV","DEC"];那么在创建常量时我做错了什么?

2 回答

  • 1

    您的第一个 MONTHS var是一个字符串,因此当您使用string.indexOf时,您将获得与所有字符串内容相比较的搜索位置 . 举个例子:

    var str = "JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC";
    console.log(str.indexOf("JUN")) ;      //   gives 15 !!
    

    你的第二个 months var是一个数组,这一次:

    console.log(months.indexOf("JUN")) ;      //   gives 5, good value because arrays starts always with index 0, you have to do 5 + 1 or add an empty cell at the first of your months array
    

    我希望现在对你来说更清楚了 .

  • 0

    您定义了“MONTHS”,然后尝试在代码中使用“月” . JavaScript区分大小写 .

    您的拆分应该在空白处指定一个中断:

    var substrings = dateString.split(' ');
    

相关问题