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.В нижеследующем текстенужно выделить все фрагменты в которых есть буква "а" и по одному символу до и после нее: