Проверка времени строки (в JavaScript) - PullRequest
2 голосов
/ 12 февраля 2011

У меня есть текстовое поле, которое принимает время (максимум 5 символов), и раскрывающийся список, который принимает значение am или pm.

Мне нужно выполнить некоторые проверки для строковых значений, введенных в текстовое поле, таких как:

  1. Если пользователь вводит 9 => Должен быть изменен на 0900
  2. 9: 3 => 0930
  3. 09: 3 => 0930
  4. 93 => оповещение ('Недопустимые значения часов)
  5. 115 => 0115
  6. 12 => 1200
  7. Недопустимые записи, такие как! @ # $% ^ & * () <>? / ~ `,; '" [] _- abcdefg .. => alert (' Invalid Time Value ').

Пока что все, чего я добился, это заменить: на ''. Например, если пользователь вводит 09:00 => 0900

Мне нужночто-то вроде:

, если clks равен 1 цифре, тогда правая клавиатура кликает с двумя нулями.

, если 2 цифры: clks> 12, тогда предупреждение (неверное значение часов)

, если3 цифры: clks <(% 59) (т. Е. Проверка последних 2 символов), затем левая панель с 1 нулем или clks> (% 59), затем предупреждение («Неверное значение минут)

если 4 цифры: clks>12% (проверка первых 2 символов), предупреждение («недопустимое значение часов») или (clks> 12% и clks> 59%), затем предупреждение («вдействительное время на часах ') или (clks <12%) и (clks <59%), затем примите номер как есть. </p>

, если 5 цифр: (и все числа), затем предупреждение (' недействительно)clk time ')

Эти проверки необходимо выполнить в теге script.(Язык бэкэнда, который я использовал, это jsp.)

Пожалуйста, помогите мне: (

Вот часть кода, который я написал:

<script type='text/javascript'>
function clocks(){

    var clk = document.getElementById('TIME').value;
    var clks = clk.replace('/:/g','');
    var ampm = document.getElementById('AMPM').value;
    var add = 1200;

    if (clks=="")
    {
        alert("You must enter clock time");
    }
    else
    {
        if (ampm=='p')
        {
            clks=parseFloat(clks) + parseFloat(add);
        }
    }

}
....
</script>

Ответы [ 2 ]

0 голосов
/ 06 июня 2014

    function validateTimeNew(obj) {

        var timeValue = obj.value;
        if (timeValue == "" || timeValue.indexOf(":") < 0) {
            alert("Invalid Time format.Valid Format Example  01:56:00 or 23:06:00");
            return false;
        }
        else {
            var sHrs = timeValue.split(':')[0];
            var smin = timeValue.split(':')[1];
            smin = smin.substring(0, 2);
            var sAmnPm = timeValue.split(' ')[1] || timeValue.split(':')[2];
            if (!isNaN(sAmnPm))
            {
                sAmnPm = sAmnPm.toUpperCase();
            }
            var chkAmnPm =timeValue.split(':')[1];             
            if (chkAmnPm.length == 4)
                sAmnPm = chkAmnPm.substring(2, 4);
                 sAmnPm = sAmnPm.toUpperCase();              
            if (sHrs == "" || isNaN(sHrs) || parseInt(sHrs) > 23) {
                alert("Invalid Time format Hours : "+ sHrs);
                return false;
            }
            else if (parseInt(sHrs) == 0) {
                sHrs = "00";
                sAmnPm = "AM";
            }
            else if (sHrs < 10 )
            {
                sHrs = "0" + parseInt(sHrs);
                if (sAmnPm != "PM")
                sAmnPm = "AM";
            }
            else if (sHrs > 13) {
                sHrs = parseInt(sHrs) - 12;
                if (sHrs < 10)
                    sHrs = "0" + parseInt(sHrs);
                    sAmnPm = "PM";
            }
            else if (sHrs == 10 )
            {
                sHrs = parseInt(sHrs);                  
                if (sAmnPm != "PM")
                sAmnPm = "AM";                                     
            }
            if (smin == "" || isNaN(smin) || parseInt(smin) > 59) {
                alert("Invalid Time format Minutes :" + smin);
                return false;
            }
            else if (parseInt(smin) == 0)
                smin = "00";
            else if (smin < 10)
                smin = "0" + parseInt(smin);
            if (sAmnPm == "" || sAmnPm=="undefined")
            {
                sAmnPm = "AM"
            }
            else { sAmnPm = sAmnPm.toUpperCase(); }
            obj.value = sHrs + ":" + smin + ":" + sAmnPm;
        }
    }
0 голосов
/ 12 февраля 2011

Вот способ сделать это в функции:

function validate_time( clks ) {

   // Remove any non-digit characters
   clks = clks.toString().replace(/\D/g, '');
   var is_valid = false;

   switch (clks.length) {

       case 1:

           // This will run if the length is 1 digit.
           clks = clks + '00';

           // Mark this as a valid time.
           is_valid = true;

           // stop running the rest
           break;

       case 2:

           if ( parseInt(clks) > 12 ) { 
               alert("Invalid hours value"); 
           } else {
               is_valid = true;
           }

           break;

       case 3:

           // Get last two characters
           var mins = clks.substr(1,2);    // offset 1 character, length of 2 characters

           if ( parseInt(mins) <= 59 ) { 
               clks = '0' + clks; 
               is_valid = true;
           } else { 
               alert('Invalid minutes value'); 
           }

           break;

       case 4:

           var hours = clks.substr(0,2);
           var mins = clks.substr(2,2);

           if ( parseInt(hours) > 12 || parseInt(mins) > 59 ) { 
               alert('Invalid clock time'); 
           } else {
               is_valid = true;
           }

           break;

       case 5:

           alert("Invalid clock time");
           break;

    }

    var data = { clks: clks, is_valid: is_valid };

    return data;

}

Чтобы вызвать его, вы должны сделать:

var result = validate_time(clks);

, и ваш результат будет объектом, переданным обратно... result.clks - это заполненное время, а result.is_valid будет либо истинным, либо ложным значением, относительно того, является ли введенное время действительным или нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...