Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   функция проверки, что в строке (https://javascript.ru/forum/misc/22359-funkciya-proverki-chto-v-stroke.html)

Cepac135 16.10.2011 21:03

функция проверки, что в строке
 
написал код для нахождения даты
задание было Написать функцию, которая проверяет, что в строке, переданной в качестве аргумента, передается дата в формате "дд.мм.гг". Если это так, то функция должна вернуть день недели введенного числа, в противном случае - "Error".
но не могу понять как вывести день недели введёного числа пробовал и if но выдаёт ошибку постоянно ...

<html>
<head>
<title>Сегодняшняя дата</title>
<script language="JavaScript">
function uznat(value)
{
time=new Date();
month=(time.getMonth() + 1);
date=time.getDate();
year=time.getYear();

var x= date
if (x != 16) {
return "Error";
} else {
return x;
}
}
</script>
</head>
<body>
<form name="Test">
<input type="text" name="In">
<input type="text" name="Result">
<input type="button" name="Enter" value="День" onclick="document.Test.Result.value=uznat(document .Test.In.value)">
</form>
</body>
</html>

DreamTheater 16.10.2011 22:48

function getDayOfWeek (date) {
    var dayOfWeek;

    date = date.match(/(\d{2})\.(\d{2})\.(\d{4})/);

    switch (new Date(date[3], date[2] - 1, date[1]).getDay()) {
        case 0:
            dayOfWeek = 'Воскресенье';
            break;
        case 1:
            dayOfWeek = 'Понедельник';
            break;
        case 2:
            dayOfWeek = 'Вторник';
            break;
        case 3:
            dayOfWeek = 'Среда';
            break;
        case 4:
            dayOfWeek = 'Четверг';
            break;
        case 5:
            dayOfWeek = 'Пятница';
            break;
        case 6:
            dayOfWeek = 'Суббота';
            break;
    }

    alert(dayOfWeek);
}

getDayOfWeek(prompt('Введите дату в формате dd.mm.yyyy'));

cyanidesign 16.10.2011 23:16

function check(val) {
    var dateMatch = /^(0[1-9]|[12][0-9]|3[01])\.(0[1-9]|1[012])\.(\d{2})$/;
    matchResult = val.match(dateMatch);
    if (matchResult) {
      var date = new Date(matchResult[3], matchResult[2] - 1, matchResult[1]);
      var day = date.getDay();
      return day;
    } else {
      throw new Error('Illegal date format, ought to be DD.MM.YY');
    }
  }


Чуть более усложненный вариант регекспа, сразу идет проверка на валидность даты (число 1-31, месяц 1-12). При разборе результата следует учесть, что нумерация дней недели идет с 0 и начинается с воскресенья, а при вводе даты в формате dd.mm.yy - год до 50го будет интерпретирован как 20XX, больше 50го, как 19XX, так что желательно вводить полный год (подправив регексп) (\d{4}).

klavishnaya_ass 14.11.2019 15:13

Vot eshe 1 sposob
 
<html>
<head>
<script>
function getDayOfWeek() {
var dayOfWeek;
var s = document.getElementById("in1").value;
var date = s.split(".");
console.log(date);
if(isNaN(date[0])==true || parseInt(date[0])>31 || parseInt(date[0])<1)
{document.getElementById("in2").value="error";
return;}
if(isNaN(date[1])==true || parseInt(date[1])>12 || parseInt(date[1])<1)
{document.getElementById("in2").value="error";
return;}
if(isNaN(date[2])==true || parseInt(date[2])>2040 || parseInt(date[2])<1)
{document.getElementById("in2").value="error";
return;}
switch (new Date(date[2], date[1]-1 , date[0]).getDay()) {
case 0:
dayOfWeek = 'Воскресенье';
break;
case 1:
dayOfWeek = 'Понедельник';
break;
case 2:
dayOfWeek = 'Вторник';
break;
case 3:
dayOfWeek = 'Среда';
break;
case 4:
dayOfWeek = 'Четверг';
break;
case 5:
dayOfWeek = 'Пятница';
break;
case 6:
dayOfWeek = 'Суббота';
break;
}
document.getElementById("in2").value=dayOfWeek;
}
</script>
</head>
<body >
<form name="Test">
<input type="text" name="In" id ="in1"><br>
<input type="button" name="Enter" value="День" onclick="getDayOfWeek();">
<input type="text" name="Result" id="in2">
</form>
</body>
</html>

рони 14.11.2019 15:27

klavishnaya_ass,
Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[html run]
... минимальный код страницы с вашей проблемой
[/html]

О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.


Часовой пояс GMT +3, время: 14:31.