черепок

Хабиб VS Макгрегор. Итоги и мысли по поводу боя

Копировано с Nukeap.Ru.

Хабиб и Макгрегор, Макгрегор и Хабиб. Эти имена заполонили последнее время интернет - действительно, интерес к бою подогревался всевозможными способами задолго до его начала... 

Read the rest of this entry »

черепок

Игра "Очко". Результирующие сообщения и вывод изображений

Копировано с Nukeap.Ru.

Довольно простой частью кода нашей игры будет вывод результирующих сообщений - здесь достаточно использовать лишь операторы ветвления с возможными условиями, совпадение которых выведет на экран определенное сообщение.

Опять же, происходить это должно не однократно, поэтому удобнее и логичнее будет написать функцию и объявить переменную msgfinal для того, чтобы оперировать ей при выводе того или иного сообщения.

function resultMed(){

var msgfinal=0;

Предварительно, до того как вывести сообщение с результатом, логично же получить этот результат. А потому используем ранее написанную функцию getSumm  (Игра "Очко". Подсчет суммы) для каждого игрока:

var playerpoint = getSumm(playercard);
var compoint = getSumm(compcard);

Ну и оператором if просто опишем всевозможные варианты развития событий - если  игрок набрал определенное количество очков или в каких случаях выиграл компьютер (Переменные compwin и playerwin - счетчики для отображения количества побед каждого игрока):

if ((compoint==21)&&(playerpoint!=21)){
msgfinal=("К сожалению, вы проиграли. Соперник набрал 21, а вы - "+playerpoint+".");
compwin++;
}
else if((playerpoint==21)&&(compoint!=21)){
msgfinal=("Поздравляем! Вы выиграли, набрав "+ playerpoint+". У вас ОЧКО!");
playerwin++ ;
}
else if ((playerpoint>21)&&(compoint<21)){
msgfinal=("К сожалению, вы проиграли. Соперник набрал "+ compoint+ ", а у вас перебор - "+playerpoint+".");
compwin++;
}
else if ((compoint>21)&&(playerpoint<21))
{msgfinal=("Поздравляем! Вы выиграли, набрав "+ playerpoint+" очков, а у противника - пребор: "+ compoint+".");
playerwin++;
}

Итак, если происходят те или иные условия - переменная msgfinal получает определенное значение вместо нуля. Настроим же вывод результата на экран. Логично, что он должен происходить только в том случае, если msgfinal !=0

if (msgfinal!=0) {document.getElementById("resultGamefinal").value = msgfinal;

Будем же интереснее, тем более, что описали уже адреса картинок, которые хранятся в массиве. Так чего бы их не показать!? Для этого вызовем новую функцию

imageShow(compimg, resultcomp);


Как отобразить изображения при помощи JavaScript

Функция, которая будет отвечать за вывод картинок на страничке с игрой имеет 2 параметра:

  1. arr - имя массива, в котором уже лежат пути к изображениям (Игра &quot;Очко&quot;. Начало. Колода карт и раздача.)
  2. whatplayer - id элемента, в котором и будут выводиться картинки на странице

function imageShow(arr,whatplayer){
for (var i =0; i<arr.length; i++) {
newimg = document.createElement('newimg');
newimg.innerHTML = ("<img src='"+arr[i]+"' height='200' width='128'>");
whatplayer.appendChild(newimg)
}}

То есть, циклом for мы перебираем массив с картинками и для каждого его i-элемента создаем дочерний элемент в документе в определенном месте (id)


Осталось же лишь добавить в функцию указания по отображению кнопок навигации и общего счета по партиям

document.getElementById("start").style.display="block";
document.getElementById("buttonmore").style.display="none";
document.getElementById("comwinpoint").value=compwin;
document.getElementById("playerwinpoint").value=playerwin;
}

Каждый элемент добавим позднее в HTML код страницы

черепок

Игра "Очко". Подсчет суммы

Копировано с Nukeap.Ru.

Продолжаем писать код для нашей небольшой и простенькой игрульки "Очко". И в этот раз озаботимся подсчетами очков. О том, как создали колоду и раздали карты, можно прочесть в статье Игра &quot;Очко&quot;. Начало. Колода карт и раздача.

Read the rest of this entry »

черепок

Игра "Очко". Начало. Колода карт и раздача.

Копировано с Nukeap.Ru.

Ну что же, начнем городить велосипед в очередной раз (по правде говоря, сам по себе велосипед уже практически готов, но сюда будет выкладываться постепенно полный код этой программки для того, чтобы когда-нибудь позднее сравнить, и обратить внимание на те или иные ошибки, которые будут допущены в этой работе.

Итак, об основных целях и задачах я уже писал в life рубрике в статье Компьютерная игра 04КО, так что особо распространяться об этом здесь не имеет смысла. При желании, всегда можно перейти по ссылке.

Приступим же к разбору кода и его описанию.

Логика игры О4К0

Правила этой карточной игры несколько похожи на игру Black Jack, хотя и немного отличаются. Мы знаем, что в игре предполагается обыкновенная колода карт из 36 карточек и, как минимум, 2 игрока (в нашем случае, это пользователь и некое подобие элементарного линейного ИИ)

Постольку поскольку данная работа - закрепление пройденного материала, состоящего из статей данного сайта, практически все задачи, возникающие при создании игры, уже были разобраны в статьях.

Создаем колоду из 36 карт

Довольно интересной задачей будет  тренировка использования многомерных массивов. Возможно, это не столько оправдано в данном случае, нежели, скажем, ассоциативные, но я решил использовать именно этот прием.

Итак, в нашей колоде 36 карт - стандартные 4 масти. Соответственно, для создания колоды нам понадобится массив 4х9 (вертикаль х горизонталь)


Важная информацияВ JavaScript многомерный массив - это массивы в массиве. То есть, длина массива (arr.length) будет определена как количество строк. А вот длина массива в массиве (arr[i].length) - считается уже по горизонтали.

Это замечание справедливо, если заполнять массив примерно таким образом:

 

arr = [

[1,2,3,4,5],

[1,2,3,4,5]

]


Поскольку мы определились с необходимыми нам свойствами массива, потому и объявим его:

var cards = [
["J", "Q","K",6,7,8,9,10,"A"],//пики
["J", "Q","K",6,7,8,9,10,"A"],//крести
["J", "Q","K",6,7,8,9,10,"A"],//буби
["J", "Q","K",6,7,8,9,10,"A"],//черви
];

Теперь предстоит решить задачу выдачи карт игрокам. При этом, количество карт в колоде будет сокращаться.

Функция случайных чисел

"Тянуть" же карты из колоды предлагается простеньким генератором случайных чисел, который для удобства можно описать через функцию:

function getRandomyouNeed(umnoj){
return (Math.floor(Math.random()*umnoj));
};

, где umnoj - множитель (максимальное число)

Раздаем случайные карты игрокам

Поскольку в нашей игре будет 2 участника (компьютер и пользователь), озаботимся созданием еще 2х глобальных переменных-массивов, которые будут содержать в себе карты, которые вытянули игроки и их изображения.

var playercard=[]; //массив карт игрока

var compcard=[];//массив карт компьютера

var playerimage=[];

var compimg=[];

Кроме того, для функции, раздающей карты, нам понадобятся и другие переменные - выбор масти, выбор карты, выпавшая карта.

var vibormast; //выбор масти
var ncard; //номер карты

var newcard;//выпавшая карта

Начнем написание функции:

function getRandomCard(arr)
{

Cледует обратить внимание, что функция раздачи карт должна работать ТОЛЬКО до того момента, пока в колоде остались неразыгранные карты. Таким образом, сразу же получается условие if(cards.length>0). Вместе с тем, возьмем на заметку, что, как уже говорили ранее, значение cards.length в нашем случае - масти в колоде. Именно поэтому необходимо будет чистить массив от удаленных значений.

Для начала, возьмем же случайные числа, чтобы определиться с тем, какую карту из колоды мы втянем:

if (cards.length>0){
vibormast = getRandomyouNeed(cards.length);
ncard = getRandomyouNeed(cards[vibormast].length);
newcard = cards[vibormast][ncard];

vibormast=getRandomyouNeed(cards.length); - конструкция, означающая, что наша функция getRandomyouNeed будет присваивать значение переменной vibormast случайное значение от 0 до значения длины массива cards, то есть выбор будет производиться по одной из оставшихся мастей.

ncard = getRandomyouNeed(cards[vibormast].length); - соответственно, выбор производится по одной из оставшихся карт определенной масти в колоде.

newcard = cards[vibormast][ncard]; - обозначаем выпавшую карту.

 

Карту-то мы вытянули, однако ее значение до сих пор осталось в массиве cards, чего быть не должно. Удалить значение из массива можно разными способами, но мы воспользуемся методом splice (он полностью "стирает" элемент массива, не оставляя пустых значений, как, скажем, метод delete):

cards[vibormast].splice(ncard,1);

где удаляем.splice(что удаляем, сколько) - таким образом, из подмассива vibormast массива cards мы удалим значение ncard.

Однако, сейчас мы удалили только карту. Масть же vibormast останется, что для нас неприемлемо и может привести к сбоям в работе программки. Именно поэтому следует записать сюда еще одну конструкцию if, которая удаляла бы из массива закончившийся подмассив (закончившуюся масть)

if (cards[vibormast].length==0)
{cards.splice(vibormast,1)};

если длина карт масти ==0 - удалить масть.

Карту выбрали и удалили ее из колоды. Теперь следует положить ее в массив одного из игроков. Делать это очень просто - делаем push! ))

arr.push(newcard);

Карту одному из игроков добавили. Добавим же к ней изображение. Делать это можно разными способами - например, добавив еще один параметр в функцию и описав краткий код, либо же через операторы ветвления:

if (arr==playercard){playerimage.push("cards/"+newcard+""+vibormast+".jpg");}
else if(arr==compcard){compimg.push("cards/"+newcard+""+vibormast+".jpg");}

Добавляем к массиву изображений игрока адрес, где хранится файл картинки (предварительно стоит присвоить им соответствующие массиву-колоде имена.

Но и это еще не все. Рано или поздно, колода закончится - и нам придется возвращаться к вопросу - перемешивать ее заново (обновить массив cards до исходного состояния) или закончить игру!?

else if(cards.length==0){
document.getElementById("start").style.display="none";
document.getElementById("buttonmore").style.display="none";
document.getElementById('question').value = ("Колода закончилась. Перемешать?");
document.getElementById("yees").style.display="block";
}
}

Эти элементы рассмотрим позднее, когда будем собирать игрушку полностью - настраивать ее взаимодействие  с браузером. Ну а пока и все  на сегодня )

 

 

черепок

Компьютерная игра 04КО

Копировано с Nukeap.Ru.

Понабравшись немного знаний, решил вот приступить к созданию своей первой "полноценной" игрушки. Да, она будет элементарна и без наворотов, но то планируется уже не нелепые "игры" на alert'ах и prompt - в планах есть подключение картинок и, возможно, в последствии музыкальных фрагментов.
Безусловно, у продвинутых это вызовет только смех, у мастеров - грусть от кода и убогости, но то - первые шаги, а потому для меня - большое дело.

Карточная игра "Очко"

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

Основные правила игры

В игре принимают участие 2 игрока (игрок и компьютер) - сначала каждому сдается по 2 карты. Затем, по желанию, игрок может добавить себе еще карту (уже по одной). При этом, необходимо набрать 21 очко.

Карты считаются следующим образом:

Карты с цифрами - по номиналу;

J = 2;

Q = 3;

K = 4;

A = 11;

При этом, A+A в отсутствии иных карт, сразу дает 21.

Побеждает тот, кто набрал 21 или бОльшее, по сравнению с соперником, количество очков. При этом, если общая сумма переваливает за 21, засчитывается проигрыш.

Цели предстоящей работы

Помимо непосредственно самой игры, главной целью ставлю для себя исключительно тренировку и закрепление пройденного материала и доведение навыков до лучшего уровня. Это циклы, ветвления, привязка к HTML и прочее... Пока только чистый JavaScript без каких-либо наворотов.

На данном этапе

Игра "Очко" или 21 (мое название - 04КО) в настоящее время находится на самом начальном этапе создания - уже готовы некоторые фрагменты кода JS, вроде раздачи карт, подсчета очков и прочее, а впереди еще очень и очень много работы, поэтому с конспектами пока придется повременить...

Метки:
черепок

Объект images (изображения)

Копировано с Nukeap.Ru.

Один из объектов, содержащихся в документе - объект изображения. Поскольку в документе может содержаться несколько изображений, то ссылки на объект представлены в виде массива, включенного в объект document.

Read the rest of this entry »

черепок

Фреймы

Копировано с Nukeap.Ru.

Язык JavaScript очень тесно связан с HTML, ведь как правило используется на страницах сайтов. Соответственно, желательно постоянно совершенствовать свои знания и навыки не только в JavaScript, но и в HTML.
Одним из значительных плюсов JavaScript является возможность управлять в одном окне (фрейме) другими окнами (фреймами). Так, о сценарии, создающим новое окно, мы говорили в статье Создание кнопки и нового окна при помощи Javascript.


Важная информацияФрейм - подокно в браузере, содержащее в себе отдельный документ. Отображается в одном окне с другими фреймами (у которых собственные документы)


Для того, чтобы понять о чем пойдет речь, необходимо немного разобраться с результатом загрузки в браузер обычного HTML документа: в браузере будет создана модель, начинающаяся с единого объекта окна window, содержащего документ.  И там мы закономерно в прошлых статьях оперировали такими вещами, как window или self. Но как быть в случае, если браузер загружает на обычный документ, а тот, который содержит в себе несколько фреймов!?

В том случае, если открывается страница, содержащая сразу несколько подстраниц (фреймов), иерархическая структура будет несколько иной. В этом случае, каждый фрейм загружается в родительском окне, которое содержит лишь часть объектов обычных Html документов.

То есть, при многофреймовом окне, за редким исключением, нет смысла ссылаться на родительский документ.

Если в многофреймовый документ добавить сценарий, в котором надо получить доступ к свойству или методу исходного окна, структура ссылок будет идентичной, как и при использовании простых окон.

Структура многофреймовых документов такова, что каждый дочерний фрейм независим от другого и может рассматриваться как объект окна.

Как сделать ссылку из родительского фрейма на дочерний

Пожалуй, самый редкий тип ссылок, когда сценарию родительского окна требуется получить доступ к элементам фреймов.

Для того, чтобы создать ссылку из родительского окна на один из фреймов, используется следующие варианты:

[window].frames[n].имя переменной объекта функции

[window].имяфрейма.имя переменной объекта функции

Как и в случае переменных в JavaScript, фреймам удобно присваивать свои собственные имена.

Как создать ссылку из дочернего фрейма в родительское окно

Часто приходится размещать сценарии в родительском окне для того, чтобы использовать их сразу в нескольких фреймах - в этом случае нет необходимости загружать их (сценарии) несколько раз.

В том случае, если необходимо ссылаться на родительское окно, используется объект parent

parent.имя переменной объекта функции

Если же необходимо обратиться к самому главному в иерархической структуре документа объекту, то использовать можно top

top.имя переменной объекта функции

Как настроить взаимодействие между дочерними фреймами

В том случае, если необходимо настроить взаимодействие между дочерними фреймами, придется затронуть все высшие уровни. Получается как в проводнике Windows, для того, чтобы попасть в другую папку, необходимо сначала выйти на уровень выше.

parent.frames[n].имя переменной объекта функции

parent.frames["имя фрейма"].имя переменной объекта функции

parent.имя фрейма. имя переменной объекта функции


Важная информацияНастроить загрузку сценария можно только после успешной загрузки всех документов фреймов, поэтому не следует сразу создавать сценарии, где другие фреймы вызываются при загрузке страницы!

В этих случаях используем загрузчик onload, настройки которого следует задать в дескрипторе <frameset>

Метки: , ,
черепок

Как выполнить поиск по строке Javascript

Копировано с Nukeap.Ru.

Давайте предположим, что перед нами стоит задача, в которой необходимо написать скрипт, выполняющий поиск по тексту. Каждое совпадение должно фиксироваться и засчитываться. При этом, наша программа должна уметь искать не только отдельные сочетания букв, но слов и целых предложений.

Примерно так и выглядит сегодняшняя задача.

Соответственно, перед тем, как писать javascript, определимся с видом страницы. Естественно, никаких хитростей дизайна в разборе данного примера применяться не будет, поэтому страничка будет выглядеть просто...

<body>
<form>
Введите текст:<br> <textarea name="mainstring" cols="70" rows="4" ></textarea><br><br>
Введите искомую букву или последовательность: <input type="text" name="typeletter" size="10">
<input type="button" value="Посчитать" onclick="countE(this.form)">
</form>
</body>

Этот отрывок кода страницы внутри тегов <body> даст нам примерно такой вид:

Как организовать поиск слов или букв в тексте при помощи Javascript

Собственно, больше ничего не требуется, для разбора темы этого вполне достаточно.

Итак, большое поле под "Введите текст" мы создали при помощи <textarea>, указав ему имя mainstring.

Следующее поле - уже знакомый нам по многим статьям <input type = "text....

Ну и, наконец, кнопка, о создании которых можно прочитать в статье Создание кнопки и нового окна при помощи Javascript

С визуальным содержимым вроде бы как разобрались. Приступим к внутреннему, невидимому обычному пользователю - написанию JavaScript.

Прежде всего, создадим функцию, которая будет запускаться по нажатию на кнопку и объявим переменную счетчика совпадений:

function countE(form){
var count =0;

Теперь нам необходимо получить данные, которые ввел пользователь в созданные поля:

var inputString = form.mainstring.value.toLowerCase();

//переменная "вводимая строка" = форма. имяформы. значение. в нижний регистр()

Под значком комментирования // я попытался перевести введенный код для того, чтоб было понятно, что язык программирования JavaScript не так страшен, как кажется начинающему. Даже при небольшом знании английского, можно практически интуитивно начать читать код, лишь поняв логику построения его отдельных элементов.

На русском языке строка означает, что значений введенной пользователем строки берется из формы с именем mainstring в нижнем регистре.


Важная информацияПеревести строку в нижний регистр важно в данном случае потому, что с точки зрения компьютера, заглавные и прописные буквы в данном случае - разные. Поэтому, чтобы не возникало путаницы или чтобы мы не потеряли некоторые слова при выполнении поиска, все следует перевести в нижний регистр.
Кроме того, важен не только регистр, но и раскладка клавиатуры, то есть, если пользователь ввел английскую букву "a", то и искать скрипт будет лишь буквы "a", введенные в английской раскладке!


Аналогичным образом поступаем и со вторым полем:

var typeletter=form.typeletter.value.toLowerCase();

Итак, мы получили значения введенных данных. Теперь давайте создадим сам счетчик. Делается это, как водится, при помощи цикла for.

При том, выходит так, что нам необходимо перебрать каждый(е) символ(ы) введенного в большом поле на соответствие введенному в маленьком. Поэтому наш цикл будет иметь такие условия:

for (var i=0; i<inputString.length; i++)

Переменная i=0 - это начальное условие. i меньше длины строки inputString (до каких пор совершать цикл). С каждым повторением цикла, i увеличивается на 1.

Благодаря этому, мы сможем перебрать текст побуквенно.

В статье Методы строковых объектов. Поиск мы уже рассматривали вопрос о том, как выделить определенную последовательность символов при помощи string.substring() - собственно, тут к этому и будем прибегать.

Итак, если фрагмент строки от символа i до i+длина искомой строки соответствует искомой строке, то счетчик увеличивается на 1. В кодовом выражении я представляю это так:

{
if(inputString.substring(i,i+typeletter.length)==typeletter){
count++;

}}

Закрываем наш цикл for. Таким образом, счетчик завершен. Нам же предстоит лишь вывести сообщение с результатами:

var msg = "В тексте " + count;
if (typeletter.length>1)
{msg += (" слов (или сочетаний букв) \""+typeletter+"\"")}
else{msg += (" букв \""+typeletter + "\"")};
alert(msg)
}

Тут операторы ветвления нужны для того, чтобы выводить различные сообщения, в зависимости от условий. Я обратил внимание лишь на то, что если длина искомого текста больше 1 (то есть, это не буква), выводится одно сообщение. В других случаях - другое. При желании, конечно, можно заморочиться и сделать ветвление более глубоким, на окончания или более человечное построение предложений, но это - не суть сейчас.

Код полностью Развернуть/свернуть
<html>
<head>
<title>Подсчет количества определенных букв в тексте</title>
<script type="text/javascript">
function countE(form){
var count =0;
var inputString = form.mainstring.value.toLowerCase();
var typeletter=form.typeletter.value.toLowerCase();
for (var i=0; i<inputString.length; i++)
{
if(inputString.substring(i,i+typeletter.length)==typeletter){
count++;</p>

}
}
var msg = "В тексте " + count;
if (typeletter.length>1)
{msg += (" слов (или сочетаний букв) \""+typeletter+"\"")}
else{msg += (" букв \""+typeletter + "\"")};
alert(msg)
}

</script>
</head>
<body>
<form>
Введите текст:<br> <textarea name="mainstring" cols="70" rows="4" ></textarea><br><br>
Введите искомую букву или последовательность: <input type="text" name="typeletter" size="10">
<input type="button" value="Посчитать" onclick="countE(this.form)">
</form>
</body>
</html>

На этом вроде как и все! Напоследок, оставляю рабочий скрипт, встроенный в страницу лишь с той разницей, что результаты поиска будут выводиться непосредственно ниже формы на самой странице, а не при помощи alert():

Введите текст:

Введите искомую букву или последовательность:

черепок

Как выполнить проверку на правильность ввода почтового адреса

Копировано с Nukeap.Ru.

В том случае, если требуется получить от пользователя его электронный адрес, хорошим функционалом будет проверка на правильность ввода. Отличительной же особенностью электронных адресов email является знак @, без которого не существует ни одного почтового адреса.

Таким образом, чтобы выполнить проверку правильности ввода, следует создать функцию, использующую поиск IndexOf() по введенным в форму данным... Это мы рассматривали в статье Методы строковых объектов. Поиск

Но перед тем, как искать что-то, давайте создадим форму и кнопку отправки почтового адреса, которая будет вызывать функцию emailcheck():

<form>
<p>Введите ваш электронный адрес:
<input type="text" name="checkemail" id="checkemail" size="15">
<input type="button" name="check" value="Проверить!" onclick="emailcheck()" >
</form>

С формой разобрались. Теперь же напишем функцию, которая будет искать значок @ во введенном тексте:

function emailcheck(){
var email = document.getElementById("checkemail").value;
if (email.indexOf("@")!=-1){
alert ("Это Email адрес")
}
else{alert("Вы ошиблись с вводом")}
}

В коде выше переменной email сначала присваивается значение формы ввода с id checkemail, а затем выполняется поиск на символ @. Если символ собаки найден, то выводится сообщение о том, что "Это Email адрес". В противном случае - "Вы ошиблись с вводом"

Конечно, для верной проверки этого недостаточно. Как известно, каждый email имеет, помимо значка собаки (@) еще и точку. Поэтому в поиске следует уточнить условие, что в адресе должна быть точка. Тогда скрипт должен выглядеть так:

function emailcheck(){
var email = document.getElementById("checkemail").value;
if (email.indexOf("@")&&email.indexOf(".")!=-1){
alert ("Это Email адрес")
}
else{alert("Вы ошиблись с вводом")}

Проверка на ввод email


Данная проверка, конечно, неполная. При желании, можно включить в поиск также проверки на наличие доменных зон или ограничить доступные адреса теми или иными почтовыми сервисами - здесь не столь важно. Главное, что теперь нам понятен принцип...

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

Для этого уберем <input type="button"... и вместо этого добавим  к <input type="text" name="checkemail" id="checkemail" size="15" запуск функции по вводу (oninput)

<input type="text" name="checkemail" id="checkemail" size="15" oninput="emailcheck()">

Кроме того, потребуется изменить функцию:

function emailcheck(){
var email = document.getElementById("checkemail").value;
if (email.indexOf("@")&&email.indexOf(".")!=-1){
document.getElementById("youremail").value= ("Введенный вами E-mail:" + email);
}
else{
document.getElementById("youremail").value = ("Вы ввели " + email + ". Это не похоже на адрес электронной почты.")
}
}

Ну и код целиком: Развернуть/свернуть
<html>
<head>
<title>Проверка на правильность ввода Email</title></p>

<script type="text/javascript">
function emailcheck(){
var email = document.getElementById("checkemail").value;
if (email.indexOf("@")&&email.indexOf(".")!=-1){
document.getElementById("youremail").value= ("Введенный вами E-mail:" + email);
}
else{
document.getElementById("youremail").value = ("Вы ввели " + email + ". Это не похоже на адрес электронной почты.")
}
}
</script>
</head>
<body>

<h1>Проверка ввода адреса электронной почты</h1><br>

<form>
<p>Введите ваш электронный адрес:
<input type="text" name="checkemail" id="checkemail" size="15" oninput="emailcheck()">

</form>
<br> <output type="text" id="youremail"></output>
</body>
</html>

Вот пример рабочего скрипта:

Введите ваш электронный адрес:

 

 

 

 

черепок

Объект Date в Javascript

Копировано с Nukeap.Ru.

На первый взгляд, вполне тривиальная задача по взаимодействию с датой и временем, имеет, на самом деле, в себе некоторые скрытые сложности, связанные не только с тем, что дата и время рассчитываются по Гринвичу (GMT), но и некоторыми другими аспектами...

Read the rest of this entry »