Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
JavaScript_2009.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.16 Mб
Скачать

Var Spoint;

Spoint = new Point();

var result = Spoint.Test(...);

Пример Js33g

Добавление свойств в класс:

Point.prototype.radius = 2;

Пример Js33k

Использование прототипа позволяет использовать наследование:

function SuperPoint(x, y, color, radius, grColor)

{

this.base = Point;

this.base(a, b, color); // нужно вызвать функцию которая является конструктором

this.radius = radius || 1;

this.grColor = grColor || "black";

}

……………………………………….

SuperPoint.prototype = new Point();

var obj;

obj = new SuperPoint();

obj.radius = 20; // доступ к свойсват obj

var a = obj.x + 20;

Пример Js33l

В этом примере класс SuperPoint наследуется от класса Point, при этом создав объект нового супер класса мы можем получить доступ к переменным объявленным в родительском классе.

Переопределение методов:

function Test2() {return false; }

function SuperPoint(x, y, color, radius, grColor)

{

this.base = Point;

this.base(a, b, color); // нужно вызвать функцию которая является конструктором

this.Test = Test2;

}

Здесь переопределён метод this.Test из родительского класса на метод Test2.

Пример Js33m

Класс Object

ПРИМЕР 25

Объект Object - это базовый объектный тип, все классы наследуют свойства и методы класса Object.

prototype – ссылка на прототип класса объектов.

constructor – возвращает ссылку конструктора класса.

Например:

if (obj.constructor == Point) { //что-то сделать };

Методы класса Object

eval(строка) – преобразует строку в число

toLocaleString(строка) – Преобразует объект в строку с учетом формата операционной системы

toSource() – возвращает строку, которая использовалась для создания объекта.

toString(объект) – преобразует объект в строку

valueOf(объект) – возвращает значение объекта

Регулярные выражения: пример 30

Регулярные выражения являются шаблонами, используемыми при поиске совпадений комбинаций символов в строках для редактирования. В JavaScript регулярные выражения являются также объектами. Эти шаблоны используются вместе с методами exec и test объекта RegExp и с методами match, replace, search и split объекта String. Регулярные выражения пишутся с использованием специального синтаксиса с зарезервированными литералами, которые и позволяют сформировать шаблон для поиска и разбора. При формировании резулярное выражение записывается в слэшах /.

Литералы:

Символ

Значение

\

Означает, что следующий символ не литерал.

^

Соответствует началу строки. Например, /^A/ не совпадает с 'A' в строке "an A", но совпадает с первым 'A' в строке "An A". Js79

$

Соответствует концу строки. Например, /t$/ не совпадает с 't' в строке "eater", но совпадает с в строке "eat". Js80

*

Предшествующий символ встречается в сторке 0 или более раз.

Например, /bo*/ совпадает с 'boooo' в строке "A ghost booooed" и с 'b' в "A bird warbled". Js81

+

Предшествующий символ встречается в строке 1 или более раз, это эквивалентно {1,}. Например, /a+/ совпадает с 'a' в "candy" и со всеми 'a' в "caaaaaaandy". Js82

?

Предшествующий символ встречается 0 или 1 раз. Например, /e?le?/ совпадает с 'el' в "angel" и с 'le' в "angle." Js83

.

(Десятичная точка) совпадает с любым одиночным символом, стоящим не в начале строки. Например, /.n/ совпадает с 'n' в 'an' и 'on' в "nay, an apple is on the tree", но не в 'nay'. Js84

(x)

Совпадает с 'x' (с выражением в скобках) и запоминает совпадение. Это называется "захватывающие скобки". Например, /(foo)/ совпадает с 'foo' в "foo bar", и запоминает его. Js85

x|y

Ищется один из двух символов, т.е. совпадает с 'x' или 'y'. Например, /green|red/ совпадает с 'green' в "green apple" и с 'red' в "red apple." Js86

{n}

Здесь n - это положительное целое. Предшествующий символ должен встретиться в строке n раз. Например, /a{2}/ не совпадает с 'a' в "candy," но совпадает со всеми 'a' в "caandy" и с первыми двумя 'a' в "caaandy." Js87

{n,}

Здесь n это положительное целое. Предшествующий символ должен встретиться в строке не менее n раз, т.е. совпадает с как минимум n вхождениями предшествующего символа. Например, /a{2,} не совпадает с 'a' в "candy", но совпадает со всеми 'a' в "caandy" и в "caaaaaaandy." Js88

{n,m}

Здесь n и m это положительные целые. Предшествующий символ должен встретиться в строке не менее n и не более m раз, т.е совпадает с минимум n и с максимум m вхождений предшествующего символа. Например, /a{1,3}/ не совпадает ни с чем в "cndy", совпадает с 'a' в "candy", с первыми двумя 'a' в "caandy" и с первыми тремя 'a' в "caaaaaaandy". Js89

[xyz]

Ищется символ из заданного набора, т.е. проверяется совпадение с одним из символов в скобках. Можно специфицировать диапазон символов с помощью дефиса. Например, [abcd] это то же самое, что и [a-d]. Совпадает с 'b' в "brisket" и с 'c' в "ache". Js90

[^xyz]

Ищется символ, не совпадающий с тем, что заключено в скобках. Можно специфицировать диапазон символов с помощью дефиса, например, [^abc] это то же самое, что [^a-c]. Совпадает с 'r' в "brisket" и с 'h' в "chop." Js91

\b

Совпадает на правой границе слова перед пробелом или переводом строки. Например /ke\b/ совпадает с 'ke' в "make some" но не в "make". Js92

\B

Совпадает не на границе слова. Например, /\w\Bn/ совпадает с 'on' в "noonday", а /y\B\w/ совпадает с 'yb' в "possibly yesterday." Js93

\cX

Где X это управляющий символ. Совпадает с управляющим символом вида "Ctrl"+"X". Например, /\cM/ совпадает с control+M в строке.

\d

Любая цифра от 0 до 9, эквивалентно [0-9].

\D

Любой не цифровой символ. Эквивалентно [^0-9].

\f

Управляющий символ перевода страницы (form feed).

\n

Управляющий символ перевода строки (line feed).

\r

Управляющий символ возврата каретки (перевод в начало строки, carriage return).

\s

Одиночный пробельный символ, включая space, tab, form feed, line feed. Например, /\s\w*/ совпадает с ' bar' в "foo bar." Js94

\S

Одиночный символом, отличный от любого пробельного символа.

\t

Табуляция (tab).

\w

Любой алфавитно-цифровой символ, включая символ подчёркивания (underscore). Эквивалентно [A-Za-z0-9_].

\W

Любой символ, не являющимся алфавитно-цифровым. Эквивалентно [^A-Za-z0-9_].

\{n}

Извлекает из памяти сохраненную ранее группу символов с заданным номером.

Регулярные выражения могут иметь три опции-флага, дающие возможность выполнять глобальный и нечувствительный к регистру поиск. Для глобального поиска используйте флаг g. Для поиска без учёта регистра используйте флаг i. Для многострочного поиска - флаг m. Эти флаги могут использоваться независимо или вместе в любом порядке и являются частью регулярного выражения. Они передаются в качестве значений параметров в соответствующие функции и методы для разбора строки.

Примеры регулярных выражений.

1. Текст:

"Привет, меня зовут Маша".

Регулярное выражение /Маша/ будет соответствовать строчке "Маша" из текста.

Пример Js95

2. Текст:

"Привет, я ищу новые КНИГИ" или "Привет, я ищу новые книги"

Регулярное выражение /книги/i будет соответствовать строчке "КНИГИ" в первом тексте, и "книги" во втором тексте.

Пример Js96

3. В нижеследующем тексте нужно выделить все фрагменты в которых есть буква "а" и по одному символу до и после нее:

sales1.xls

sales2.xls

order3.xls

sales3.xls

apac1.xls

ha1.xls

ha2.xls

sa1.xls

ram.xls

Регулярное выражение: /.a./

Пример Js97

4. В этом же тексте :

/.a.\.xls/ соответствует любому фрагменту, в который входит набор из трех символов, в середине которого стоит символ a, затем стоит точка после которой идет набор символов xls, т.е. любому из фрагментов ha1.xls, ha2.xls, sa1.xls, ram.xls.

. Пример Js98

/[hs]a.\.xls/ - соотвествует ha1.xls, ha2.xls, sa1.xls .

. Пример Js99

/^..\d/ - соотвествует, например, именам файлов начинающимся с любых двух символов и цифры.

. Пример Js100

/[hs]a[0-9]\.xls/ - аналогично /[hs]a.\.xls/, только после буквы "а" должна стоять цифра.

. Пример Js101

5. Чтобы найти любой цвет записанный в коде HTML в форме #rrggbb, где r, g, b – шестнадцатеричные числа, нужно воспользоваться регулярным выражением -

/#[0-9A-Fa-f]{6}/.

{6} означает что символов должно быть 6 штук.

. Пример Js102

6. Регулярное выражение /\r\n\r\n/ - совпадает с пустой строкой (двойное нажатие клавиши ENTER).

7. Чтобы найти в тексте адрес электронной почты в виде xxx@xxxxx.xxx или xxxx.xxxx@xxxxxx.xxx нужно воспользоваться регулярным выражением

/\w+(\.?\w+)?@\w+\.\w+/.

. Пример Js103

8. Найти в тексте WEB-адрес:

/(\w+:\/\/)?([^/]+)(.*)?/

. Пример Js104

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

Первая группа соответствует записи протокола, ее может не быть.

Вторая группа соответствует доменному имени - это любая последовательность символов, не содержащая символа /.

Третья группа соответствует имени файла, она тоже может отсутствовать.

9. Найти в тексте последовательность символов filexxxxxxxxxxxxx.txt или Filexxxxxxxxx.txt.

Регулярное выражение: /[fF]ile.*\.txt/

. Пример Js105

Здесь ищется последовательность из одного из символов "f" или "F", строки "ile", затем может стоять (или нет) любой символ сколько угодно раз, затем должна стоять точка и последовательность символов "txt".

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]