функция проверки, что в строке
написал код для нахождения даты
задание было Написать функцию, которая проверяет, что в строке, переданной в качестве аргумента, передается дата в формате "дд.мм.гг". Если это так, то функция должна вернуть день недели введенного числа, в противном случае - "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> |
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')); |
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}). |
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> |
klavishnaya_ass,
Пожалуйста, отформатируйте свой код! Для этого его можно заключить в специальные теги: js/css/html и т.п., например: [html run] ... минимальный код страницы с вашей проблемой [/html] О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting. |
Часовой пояс GMT +3, время: 14:31. |