1

私はJavascriptが初めてで、プログラムを書くタスクにいくつかの困難を感じています.

私の仕事は、ユーザーが生年月日を入力できるようにするプログラムを書くことです。次にプログラムは、対応する中国の干支を画像で表示し、ユーザーの生存日数を表示します。

入力は何になりますか?

  • ユーザーの生年月日 (有効な 4 桁の年が入力されると仮定します)
  • ユーザーの誕生月 (ユーザーは少なくとも月名の最初の 3 文字を入力すると仮定しますが、これは長くなる可能性があり、大文字を含む可能性があるため、jan、Jan、january、January、またはその他の月名になる可能性があります)
  • ユーザーの生年月日 (月) (有効な日付が入力されるものとします)

使用する定数

次の値を格納するための定数を作成し、適切な名前を付けます。

  • 月の省略形を含む文字列 'JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC'
  • 1日のミリ秒数 1000*60*60*24
  • 干支の周期 12
  • 中国の干支サイクルを開始した年 1924

これまでの私のコード:

var year = prompt('Enter year of birth as a 4 digit integer') // A prompt to enter the year of birth.
var month = prompt('Enter the name of the month of birth') // A prompt to enter the month of birth.
var date = prompt('Enter day of birth as an integer') // A prompt to enter the date of birth.
    var month = ["jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec"]
    var month = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
    var month = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]
    var month = ["january", "february", "march", "april", "may", "june", "july", "august", "september", "october", "november", "december"]

誕生月の入力で困っています。ユーザーが少なくとも月名の最初の 3 文字を入力すると想定するコードを作成しようとしていますが、これは長くなる可能性があり、大文字が含まれる可能性があるため、jan、Jan、january、January、または他の月の名前。

どんな助けでも大歓迎です!

ジョージ

4

2 に答える 2

3

.substr()入力を短縮し、.toLowerCase()小文字に変換するために使用します。次に、それを月の配列 (小文字バージョン) と一致させます。以下は、開始するのに役立つ情報です。

var month = prompt('Enter the name of the month of birth');
// Chop everything after the first 3 characters and make it lowercase
month = month.substr(0,3).toLowerCase();
// Store your array in months, differently named than the month input
var months = ["jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec"];

// You can then use array.indexOf() to locate it in the array
// Not available in older browsers though
var pos = months.indexOf(month);
if (pos >= 0) {
   // valid month, number is pos
}

;PS各ステートメントの最後にある を忘れないでください。

于 2012-07-25T01:59:16.463 に答える
0

考えられるすべての月の文字列を 1 つの配列に結合します。

var year = prompt('Enter year of birth as a 4 digit integer') // A prompt to enter the year of birth.
var month = prompt('Enter the name of the month of birth') // A prompt to enter the month of birth.
var date = prompt('Enter day of birth as an integer') // A prompt to enter the date of birth.
var possibleMonths = ["jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec", 
    "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", 
    "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December", 
    "january", "february", "march", "april", "may", "june", "july", "august", "september", "october", "november", "december"]

次に、その 1 つの配列を繰り返し処理して、ユーザーがそれらの月のいずれかを入力したかどうかを確認します。

var isValidMonth = false;

for (var i = 0; i < possibleMonths.length; i++){
    if (possibleMonths[i] === month){
        isValidMonth = true;
        break;
    }
}

alert(month + " is a valid month: " + isValidMonth);
于 2012-07-25T02:03:47.297 に答える