0

私は次の2つの機能を持っており、ユーザーが年を入力できるようにしようとしています。その後、答えが答えになります。しかし、関数に文字列を認識させ、答えが MM/DD/YYYY 形式でない場合は、関数 wholePigLatin を実行するにはどうすればよいですか?ユーザーが入れます。どんな助けでも大歓迎です。ありがとう。

function isLeaper() {
            var image1 = document.getElementById('yes');
            var image2 = document.getElementById('no');
            var year = document.getElementById("isLeaper").value;
            var arr = year.split('/');
            var splitYear = arr[arr.length - 1];
            // 1. If the year is divisible by 4, but not 100.
            if ((parseInt(splitYear) % 4) == 0) {
                if (parseInt(splitYear) % 100 == 0) {
                    if (parseInt(splitYear) % 400 != 0) {
                        $('#myDiv').html(image2).fadeIn(500).delay(1000).fadeOut(500);
                        // alert(year + 'is not a leap year. Sorry!');
                        return "false";
                    }
                    if (parseInt(splitYear) % 400 == 0) {
                        $('#myDiv').html(image1).fadeIn(500).delay(1000).fadeOut(500);

                        //alert(splitYear + ' is a leap year. Hooray! ');
                        return "true";
                    }
                }
                if (parseInt(splitYear) % 100 != 0) {
                    $('#myDiv').html(image1).fadeIn(500).delay(1000).fadeOut(500);

                    //alert(splitYear + ' is a leap year. Hooray! ');
                    return "true";
                }
            }
            if ((parseInt(splitYear) % 4) != 0) {
                $('#myDiv').html(image2).fadeIn(500).delay(1000).fadeOut(500);

                //alert(splitYear + ' is not a leap year. Sorry! ');
                return "false";
            }
        }

        if ((parseInt(year) % 4) != 0) {
            $('#myDiv').html(image2).fadeIn(500).delay(1000).fadeOut(500);
            return "false";
        }

私の2番目の機能は次のとおりです。

function wholePigLatin() {
            var thingWeCase = document.getElementById("pigLatin").value;
            thingWeCase = thingWeCase.toLowerCase();
            var newWord = (thingWeCase.charAt(0));

            if (newWord.search(/[aeiou]/) > -1) { 
                alert(thingWeCase + 'way')
            }
            else {
                var newWord2 = thingWeCase.substring(1, thingWeCase.length) + newWord + 'ay';
                alert(newWord2)
            }
        }

これが私のボタンです。

        <input type="text" id="isLeaper" value="MM/DD/YYYY">
        <input type="button"  value="Is Leap Year?" onclick="isLeaper();">
4

2 に答える 2

1

組み込み関数 (parseInt など) を呼び出すのと同じように、独自の関数を呼び出すことができます。wholePigLatin();実行したい場所に行を追加するだけです。

ボタンに 2 つの関数のいずれかを実行させるには: ブール論理を含む if ステートメントを使用して関数を導入し、onClick イベントで呼び出すだけです。

function handleButtonClick() {
    var year = document.getElementById("isLeaper").value;

    if( isFormattedAsDate(year) ) {
        isLeaper();
    } else {
        wholePigLatin();    
    }
}

および HTML:

<input type="text" id="isLeaper" value="MM/DD/YYYY">
<input type="button"  value="Is Leap Year?" onclick="handleButtonClick();">

isFormattedAsDate正しい形式の場合は true を返し、それ以外の場合は false を返す関数を実装する必要があります。

于 2013-03-18T18:59:00.770 に答える
0

私はあなたがこれを望んでいると思います:

function isLeaper() {
    var year = document.getElementById("isLeaper").value;
    if ( ! /* year is in DD/MM/YY format */)
        return wholePigLatin();
    // else
    // go on as normal
    // …
}

形式を確認するには、正規表現を使用したい場合があります/^\d{2}\/\d{2}\/\d{4}$/.test(year):truefalseisLeaper

于 2013-03-18T18:57:18.350 に答える