Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Веб программирование.Начало.doc
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
7 Мб
Скачать
☆

Объект Date (Дата)

Объект Date предоставляет набор методов для работы с датой и временем. Текущее время берется из операционной системы и хранится в виде числа, показывающее количество миллисекунд с 1 января 1970 года. Нумерация дней недели начинается с нуля, воскресенья.

Экземпляр объекта Date объявляется следующим образом:

имяОбъекта = new Date()

Методы объекта Date

getFullYear(), getYear() – год; getMonth() – месяц(0-11), getDate() – число(1-31), getDay() – день недели (0-6); getHours() – часы (0-23), getMinutes() – минуты (0-59), getSeconds() – секунды (0-59), getTime(), getMilliseconds() - миллисекунды;

setYear(год), setFullYear(год) – установка года; setMonth(месяц) - установка месяца, setDate(число) - установка числа, setDay(день) - установка дня недели (от 0-6); setHours(часы) - установка часов, setMinutes(число) - установка минут, setSeconds(число) - установка секунд; setMilliseconds(число), setTime(число) - установка миллисекунд

getTimezoneOffset () – разница в минутах по отношению к UTC

toDateString() - Строка с датой (без времени) в формате браузера

toGMTString() - Строка с датой и временем в глобальном формате

toLocaleDateString() - Строка с датой без времени в локализованном формате; toString() - Строка с датой и временем в формате браузера

<!--пример pr19:часы.Использование методов объекта Date-->

<html> <head>

<title>Clock</title>

<script type="text/JavaScript">

function clockform()

{d=new Date();

time=d.getHours()+":"+d.getMinutes()+":"+d.getSeconds();

document.formcl.fclock.value=time;

setTimeout("clockform()",100); }

</script>

</head>

<body onLoad="clockform()">

<center>

<form name=formcl metod="get">

<input name=fclock maxlength=8 size=8>

</form> </center>

</body></html>

Объект Function

Функция в JavaScript также является объектом и создается следующим образом: name= new Function (arguments )

{тело функции}

Свойства объекта:

arguments — массив значений параметров. Индексация элементов массива производится с 0. length — количество параметров. caller — содержит ссылку на функцию, из которой была вызвана данная функция.

Методы объекта:

toString() — возвращает определение функции в виде строки.

Объект RegExp и регулярные выражения

В JavaScript регулярные выражения представлены объектом RegExp. Свойства RegExp принимают значения литералов регулярных выраже­ний из нескольких символов в стиле Perl записываемых в косых скобках. Рассмотрим простой пример шаблона: /stud/. Регулярное выражение ищет все строки, содержащие подстроку stud. Выражение /^stud/ означает, что stud должно находиться в начале слова (student), а /stud$/ - в конце (restud).

Символы могут объединяться в группы путем помещения в квад­ратные скобки. Квадратные скобки /[абв]/ означают “любой символ а,б,в из перечисленных в скобках”. Символ ^ в группе соответствует отрица­нию, то есть указывает символы, не соответствующие шаблону. /[^абв]/ означает “любой символ отличный от а,б,в ” .

Для регулярных выражений могут быть использованы интервалы:

/[0-9]/ - совпадает с любой десятичной цифрой от 0 до 9;

/[a-z]/ - совпадает с любым символом нижнего регистра от а до z;

/[a-zA-Z0-9]/ - совпадает с любым символом или цифрой из Latin.

Конструкция [^a-zA-Z] совпадает с любым символом, не входящим в указанные интервалы (a-z и A-Z).

Специальные символы записываются с обратным слешем \ - призна­ком особой интерпретации следующего за ним символа:

\d - обозначает любую десятичную цифру;

\D - обозначает любой символ кроме десятичной цифры;

\w - алфавитно-цифровой символ /[a-zA-Z0-9_]/

\W - символ, не являющийся алфавитно-цифровым /[^a-zA-Z0-9_]/

\s - пробельный символ

\S - символ не являющийся пробельным

\n – Символ перехода на следующую строку. Строка\nЕще строка

\r – Символ возврата на начало строки. Текст\r

\t – Символ табуляции из нескольких пробелов. \tКрасная строка

\\ – Обратный слеш

\b забой, совпадает с границами слов: /sa\b/. Противоположный сим­вол, \b, совпадает с чем угодно, кроме границы слова: /sa\b/.

Служебный символ . (точка) означает любой символ поэтому для поиска точки ее надо экранировать символом обратный слеш \. Шаблону соответствует знак точки в строке.

Символы +, *, ? и {...}, обозначающие количество повторений от­дельного символа или конструкции, заключенной в квадратные скобки, называют квантификаторами. Принцип их действия проще всего пояс­нить на примерах:

[р]+ означает один или несколько символов р, стоящих подряд;

[р]* означает ноль и более символов р, стоящих подряд;

[р]? означает ноль или один символ р;

[р]{2} означает ровно два символа р, стоящих подряд;

[р]{2,3} означает от двух до трех символов р, стоящих подряд;

[р]{2,} означает два и более символов р, стоящих подряд.

Например, шаблон /stu+/ совпадает с последовательностью stu, за которой могут следовать один или несколько дополнительных символов u. Шаблон /st{2,4}/ совпадает с символом s, за которым следуют от 2 до 4 экземпляров символа t. /\w{3}\d?/ - три буквы и необязательная цифра. /\s+Java\s+/ - несколько пробелов до слова или после него. Выражение /[\d]+/ используется для поиска цифровой подстроки, выражение /([\d]+)000/ может использоваться при поиске денежных сумм.

Шаблон /<([\w]+)>/ совпадает с конструкциями, заключенными в угловые скобки, - например, тегами HTML.

Подстроки в регулярных выражениях можно группировать при по­мощи круглых скобок: /домен – (by|ru|uk|com)/ соответствует строке до­мен – by или другой.

Оператор | (или) проверяет совпадение одной из нескольких альтер­натив. ( ) – Логическая группировка выражений, которая (может)+ по­вторяться.

В регулярных выражениях могут использоваться флаги. Флаг i ука­зывает , что поиск по шаблону должен быть нечувствительным к регистру символов, а флаг g- поиск должен быть глобальным. Пример:

/\bJava\b/gi

Методы класса String, поддерживающие регулярные выражения:

search(рег_выраж ); возвращает позицию символа в первой найден­ной подстроке. Например “JavaScript”.search(/script/i) возвращает 4.

replace(рег_выраж, строка_замены); - строка замены заменяет все строки с регулярным выражением если указан флаг g, иначе заменяется только первое найденное вхождение. Text.replace(/Javascript/gi,”JavaScript”). Метод match(рег_выраж) возвра­щает массив найденных по шаблону подстрок. Метод split(рег_выраж) – разбивает строку на массив строк.

Конструкция

/MSIE (5\.5|6).+Win/.test(navigator.userAgent)

читается так: "проверить, соответствует ли строка, содержащаяся в свойстве navigator.userAgent, следующиему шаблону: Строка MSIE, после которой стоит пробел, затем наборы символов "5.5" или "6", после которых один или более символов, за которыми следует набор символов "Win"".

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

5.5 Document Object Model (DOM)

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

Модель DOM основана на использовании объектов браузера: document, а также navigator, window, images, forms.

Объект window.document содержит отображение загруженного HTML-документа в виде дерева узлов (node). Тег<html> становится «корнем» дерева. Дочерними узлами <html> являются узлы <head> и <body>, у которых, в свою очередь, есть собственные дочерние узлы. Рассмотрим фрагмент документа:

<!-- пример pr27: -->

<HTML>

<HEAD>

<TITLE> Overview of the DOM </TITLE>

</HEAD>

<BODY>

<H1> Иерархия узлов </H1>

<P>

На вершине иерархии находится узел document.

</P>

</BODY>

</HTML>

На следующей диаграмме показаны узлы этого документа.

Элемент <html>доступен как свойство documentElement объекта document и имеет тип Element. Имеются также типы для атрибутов и текста. Свойство nodeName объекта document возвращает имя тэга- узла, для атрибутов nodeName возвращает название атрибута, а для теста - #text. Свойство nodeType возвращает 1, 2 или 3 для узлов, соответст­вующих тегу, атрибуту или тексту. Свойство: nodeValue хранит содержание текстового узла. Для элементов возвращает null, для атрибутов - значение атрибута.

<!-- пример pr22: -->

<html><head>

<title>Dom</title>

<script>window.onload = function() {

alert(document.body.childNodes.length) }//5

</script>

</head> <body>

<script>

function go() {

alert(document.body);//1-[object HTMLBodyElement]

alert(document.documentElement);// 2-[object HTMLHTMLElement]

alert(document.documentElement.nodeName+""+document.documentElement.

nodeType+""+ document.documentElement.nodeValueType)//3-

alert(document.body.lastChild.nodeName+""+document.body.lastChild.nodeType+""+document.body.lastChild.nodeValue) //4-

}

</script>

<input type="button" onclick="go()" value="Go"/>

</body> </html>

Результат:

3-HTML1undefined //имя HTML, тип 1, значение undefined

4-#text3