3Obekty_string.ppt
- Количество слайдов: 36
Объекты
Объект – это коллекция именованных значений, которые обычно называют свойствами (properties) объекта. Чтобы сослаться на свойство объекта, надо указать имя объекта, затем точку и имя свойства. image. width image. height
Свойства объектов во многом похожи на Java. Script-переменные – они могут содержать любой тип данных, включая массивы, функции и другие объекты. document. myform. button Как упоминалось раньше, функция, хранящаяся в свойстве объекта, часто называется методом, а имя свойства становится именем метода.
• В Java. Script математические вычисления, сложная обработка строк и дат, а также создание массивов производятся с помощью соответствующих встроенных объектов. Для разработчиков веб-сайтов особенно важны объекты String (обработка строк), Array (массивы), Math (математические формулы и константы) и Date (работа с датами).
• Объекты – это составной тип данных, они объединяют множество значений в единый модуль и позволяют сохранять и извлекать значения по их именам. Говоря другими словами, объекты – это неупорядоченные коллекции свойств, каждое из которых имеет свои имя и значение. Именованные значения, хранящиеся в объекте, могут быть данными элементарных типов, такими как числа или строки, или сами могут быть объектами
С помощью оператора new можно создать другую разновидность объектов. За этим оператором должно быть указано имя функции-конструктора, выполняющей инициализацию свойств объекта. Например: var a = new Array(); // Создать пустой массив var d = new Date(); // Создать объект с текущими временем и датой var r = new Reg. Exp("javascript", "i"); // Создать объект регулярного выражения Продемонстрированные здесь функции Array(), Date() и Reg. Exp() являются встроенными конструкторами базового языка Java. Script. Конструктор Object() создает пустой объект, как если бы использовался литерал {}.
Объект String (Строка) • Объект String представляет интерес главным образом благодаря методам обработки строк. Он незаменим, когда требуется, например, найти позицию вхождения одной строки в другую, вырезать из строки некоторую ее часть, разбить строку на отдельные элементы и создать из них массив и т. д.
Для создания строкового объекта используется выражение следующего вида: имя_переменной = new String("строка") Доступ к свойствам и методам строкового объекта обеспечивается такими выражениями: строка. свойство String. свойство строка. метод([параметры]) String. метод([параметры])
Ниже приведены три различных способа использования свойства length строкового объекта, значением которого является длина строки (количество символов в строке). mystring = "Однажды в студеную зимнюю пору" mystring. length // значение равно 30 "Однажды в студеную зимнюю пору". length // значение равно 30 function fstring() {return "abcde"} /* функция, возвращающая строку "abcde" */ fstring(). length //значение равно 5 Свойство String. length – это доступное только для чтения целое число, указывающее количество символов в заданной строке (включая пробелы). Для любой строки s индекс последнего символа равен s. length– 1.
Методы String обработки строк char. At(индекс) — возвращает символ, занимающий в строке указанную позицию. Номер первого символа в строке равен нулю. Если n не находится между 0 и string. length– 1, этот метод возвращает пустую строку. Синтаксис: строка. char. At (индекс) Возвращает односимвольную или пустую строку. Параметр (индекс) является числом, индекс первого символа равен 0. Примеры "Привет". char. At(2) // значение равно "и" "Привет". char. At(15) // значение равно "" mystring = "Привет" mystring. char. At(mystring. length-1) /* значение последнего символа равно "т" */
char. Code. At([индекс]) — преобразует символ в указанной позиции строки в его числовой эквивалент (код). Возвращаемое значение: код Unicode указанного символа в строке – 16 -разрядное целое между 0 и 65 535. Если индекс отрицателен либо меньше или равен длине строки, char. Code. At() возвращает Na. N. Синтаксис: строка. char. Code. At(индекс) Примеры "abc". char. Code. At() // значение равно 97 "abc". char. Code. At(1) // значение равно 98 "abc". char. Code. At(25) // значение равно Na. N " я ". char. Code. At(0) // значение равно 1103
String. from. Char. Code(номер1 [, номер2 [, . . . номер. N]]) — возвращает строку символов, числовые коды Unicode которой указаны в качестве параметров. Возвращает строку. Пример: String. from. Char. Code(97, 98, 1102) // значение равно "аbю" var s = String. from. Char. Code(104, 101, 108, 111); // Создает строку "hello"
concat(строка) — конкатенация (склейка) строк. Синтаксис: строка 1. concat (строка 2) Возвращает строку. concat() преобразует все свои аргументы в строки (если это нужно) и добавляет их по порядку в конец строки. Возвращает полученную объединенную строку. Обратите внимание: сама строка при этом не меняется. Метод String. concat() представляет собой аналог Array. concat(). Следует отметить, что конкатенацию строк часто проще выполнить с помощью оператора +. Примеры: "Иван". concat("Иванов") // значение равно "Иванов" х = "Федор" + " " // значение х равно "Федор " х. concat("Иванов") // значение равно "Федор Иванов"
String. index. Of(строка_пoиска [, индекс]) — производит поиск строки, указанной параметром, и возвращает индекс ее первого вхождения. Синтаксис: строка. index. Of (строка_поиска [, индекс]) Возвращает число. Метод производит поиск позиции первого вхождения строка_поиска в строку строка. Возвращаемое число (индекс вхождения) отсчитывается от 0. Если поиск не удачен, то возвращается -1. Поиск в пустой строке всегда возвращает -1. Поиск пустой строки всегда возвращает 0. Второй параметр, не являющийся обязательным, указывает индекс, с которого следует начать поиск. Его допустимые значения от 0 (позиция первого символа в строке) до string. length– 1 (позиция последнего символа в строке). Если этот аргумент отсутствует, поиск начинается с первого символа строки.
Примеры: х ="Во первых строках своего письма" х. index. Of("первых") //значение равно 3 х. index. Of("первых строках") //значение равно 3 х. index. Of("вторых строках") //значение равно -1 х. index. Of("В") //значение равно 0 х. index. Of ( "в" ) //значение равно 6 х. index. Of("в" , 7) //значение равно 19 x. index. Of(" ") //значение равно 2 х. index. Of(" ", 5) //значение равно 9 х. index. Of( "" ) //значение равно 0
String. last. Index. Of(строка_пoиска [, индекс]) — производит поиск строки, указанной параметром, и возвращает индекс ее первого вхождения; при этом поиск начинается с конца исходной строки, но возвращаемый индекс отсчитывается от ее начала, то есть от 0. Возвращает число. Метод аналогичен рассмотренному выше index. Of() и отличается лишь направлением поиска. Примеры х ="Во первых строках своего письма" х. lastlndex. Of("первых") // значение равно 3 x. lastlndex. Of("а") // значение равно 30 х. index. Of("a") // значение равно 15
String. locale. Compare() сравнивает строки с учетом порядка следования символов национальных алфавитов. Синтаксис: строка. locale. Compare(целевая_строка) Синтаксис Аргумент целевая_строка - строка, сравниваемая со строкой с учетом порядка следования символов национальных алфавитов. Возвращаемое значение - число, обозначающее результат сравнения. Если строка «меньше» целевой_строки, locale. Compare() возвращает отрицательное число. Если строка «больше» целевой_строки, метод возвращает положительное число. Если строки идентичны или неразличимы в соответствии с региональными соглашениями о сортировке, метод возвращает 0.
String. slice(start, end) - извлечение подстроки. Синтаксис: строка. slice(индекс1[, индекс2]) — возвращает подстроку исходной строки, начальный и конечный индексы которой указываются параметрами, за исключением последнего символа. Данный метод не изменяет исходную строку. Если второй параметр не указан, то возвращается подстрока с начальной позицией индекс1 и до конца строки. Отсчет позиций начинается с начала строки. Первый символ строки имеет индекс 0. Если второй параметр указан, то возвращается подстрока исходной строки начиная с позиции индекс1 и до позиции индекс2, исключая последний символ. Если второй параметр отрицателен, то отсчет конечного индекса производится от конца строки.
Примеры: var s = "abcdefg"; s. slice(0, 4) // Возвращает "abcd" s. slice(2, 4) // Возвращает "cd" s. slice(4) // Возвращает "efg" s. slice(3, -1) // Возвращает "def" s. slice(3, -2) // Возвращает "de" s. slice(-3, -1) // Возвращает "ef" х = "Во первых строках своего письма" х. slice(3, 8) // значение равно "первы" х. slice(3, -2) // значение равно "первых строках своего пись" /* Анализ адреса электронной почты */ х = " mumu@gerasim. ru" i = х. index. Of("@") // значение равно 4 _name = x. slice(0, i) // значение равно "mumu" _domen = x. slice(i+1, х. index. Of". " ) ) // значение равно "gerasim" _domen = х. slice(i+1, -3) // значение равно "gerasim"
String. split() разбивает строку на массив строк Синтаксис: строка. split([разделитель], [лимит]) Первый параметр – разделитель - является строкой символов, используемой в качестве разделителя строки на элементы. Второй необязательный параметр — лимит - необязательное целое, задающее максимальную длину полученного массива. Если этот аргумент указан, то количество возвращенных подстрок не будет превышать указанное. Если он не указан, разбивается вся строка независимо от ее длины. Возвращаемое значение: массив строк, создаваемый путем разбиения строки на подстроки по границам, заданным разделителем. Подстроки в возвращаемом массиве не включают сам разделитель. Если разделитель — пустая строка, то возвращается массив символов строки. Если разделитель не указан, строка вообще не разбивается, и возвращаемый массив содержит только один строковый элемент, представляющий собой строку целиком.
Примеры: "1: 2: 3: 4: 5". split(": "); // Возвращает ["1", "2", "3", "4", "5"] "|a|b|c|". split("|"); // Возвращает ["", "a", "b", "c", ""] Еще одно распространенное применение метода split() состоит в разбиении команд и других подобных строк на слова, разделенные пробелами: var words = sentence. split(' '); х = "Привет всем" x. split(" ") /* значение - массив из элементов: "Привет", "всем" */ х. split("е") /* значение - массив из элементов: "Прив", "т вс", "м" */ х. split("е", 2) /* значение - массив из элементов: "Прив", "т вс" */
String. substr(индекс[, длина]) — возвращает подстроку исходной строки, начальный индекс и длина которой указываются параметрами. Синтаксис: строка. substr(индекс[, длина]) Возвращает строку. Данный метод не изменяет исходную строку. Если второй параметр не указан, то возвращается подстрока с начальной позицией индекс и до конца строки. Отсчет позиций начинается с начала строки. Если первый аргумент отрицателен, он обозначает позицию, измеряемую от конца строки: – 1 обозначает последний символ, – 2 – второй символ с конца и т. д. Обратите внимание: метод substr() задает нужную подстроку с помощью позиции символа и длины. Благодаря этому появляется удобная альтернатива методам String. substring() и String. splice(), в которых подстрока задается двумя символьными позициями. При этом следует отметить, что метод не стандартизован в ECMAScript и, следовательно, считается устаревшим.
Примеры var s = "abcdefg"; s. substr(2, 2); // Возвращает "cd" s. substr(3); // Возвращает "defg" s. substr(-3, 2); // Возвращает "ef" х = "Привет всем" х. substr(7, 4) // значение равно "всем" /* Анализ адреса электронной почты */ х = " mumu@gerasim. ru" i = х. index. Of("@") // значение равно 4 _name = x. substr(0, i) // значение равно "mumu" _domen = х. substr(i+1) // значение равно "gerasim. ru"
String. substring(индекс1, индекс2) — возвращает подстроку исходной строки, начальный и конечный индексы которой указываются параметрами. Синтаксис: строка. substring( (индекс1, индекс2) Возвращает строку. Данный метод не изменяет исходную строку. Порядок индексов не важен: наименьший из них считается начальным. Отсчет позиций начинается с начала строки. Первый символ строки имеет индекс 0. Символ, соответствующий конечному индексу, не включается в возвращаемую строку.
Примеры: х = "Привет всем" х. substring(0, 6) // значение равно "Привет" x. substring(7, х. length) // значение равно "всем" х. substring(7, 250) // значение равно "всем" х. substring(250, 7) // значение равно "всем"
String. to. Locale. Lower. Case, String. to. Lower. Case() преобразуют символы строки в нижний регистр Синтаксис строка. to. Locale. Lower. Case() строка. to. Lower. Case() Первый метод возвращает копию строки, преобразованную в нижний регистр с учетом региональных параметров. Только немногие языки, такие как турецкий, имеют специфические для региона соответствия регистров, поэтому данный метод обычно возвращает то же значение, что и метод to. Lower. Case(). Приведение строк к одному и тому же регистру требуется, например, при сравнении содержимого строк без учета регистра.
Примеры: х = "Здра. Вствуй. Те" х. to. Locale. Lower. Case() // значение равно "здравствуйте" х. to. Lower. Case() // значение равно "здравствуйте" у = "Здравствуйте" х == у // значение равно false х. to. Lower. Case() == у. to. Lower. Case() // значение равно true
String. to. Locale. Upper. Case(), String. to. Upper. Case() - преобразуют символы строки в верхний регистр. Синтаксис: строка. to. Locale. Upper. Case() строка. to. Upper. Case() Первый метод возвращает копию строки, преобразованную в верхний регистр с учетом региональных параметров. Лишь немногие языки, такие как турецкий, имеют специфические для региона соответствия регистров, поэтому данный метод обычно возвращает то же значение, что и метод to. Upper. Case(). .
Примеры: х = "Здра. Вствуй. Те" х. to. Locale. Upper. Case() // значение равно "ЗДРАВСТВУЙТЕ" х. to. Upper. Case() // значение равно "ЗДРАВСТВУЙТЕ" у = "Здравствуйте" х == у // значение равно false х. to. Upper. Case() == у. to. Upper. Case()// значение равно true
Методы String форматирования строк Как известно, тексты на веб-страницах обычно создаются и форматируются с помощью тегов HTML. Однако тексты можно создавать на веб-страницах и с помощью сценариев. Например, чтобы вывести на веб-страницу строку "Привет всем!" полужирным шрифтом, в HTML-коде следует написать следующую инструкцию: <В>Привет всем!</В> Чтобы подготовить эту же строку в таком же формате средствами Java. Script, в сценарии следует написать такое выражение: "Привет всем!". bold() Здесь использован метод bold() строкового объекта для форматирования строк. Выполнение этого выражения лишь создает отформатированную строку, но не выводит ее в окно браузера. Чтобы сделать это, следует еще выполнить метод write() объекта document для записи этой строки в HTML-документ.
Ниже приведен пример кода. <html> <script> х = "Привет всем!". bold() document. write(x) </script> <р>Приветствие было вставлено сценарием Java. Script</p> </HTML> Методы форматирования строк носят названия, соответствующие тегам HTML. Их следует записывать только в нижнем регистре (строчными буквами). Эти методы никогда не были стандартизованы в ECMAScript, но позволяют динамически генерировать HTML-код и в клиентском, и в серверном Java. Script-коде.
Если вы готовы к использованию нестандартных методов, можете следующим образом создать исходный HTML-текст для гиперссылки, выделенной полужирным шрифтом красного цвета, при щелчке на которую в диалоговом окне появится надпись hello: var s = "щелкни здесь!"; var htmll = s. bold(). fontcolor("#00 ff 00"). link("javascript: a lert('hello')"); document. write(htmll) ;
Большинство методов форматирования не имеют параметров. Далее приведен их список. anchor(имя) Возвращает копию строки в окружении тега <a name=>. big() Возвращает копию строки в окружении тега <big>. blink() Возвращает копию строки в окружении тега <blink>. bold() Возвращает копию строки в окружении тега <b>. fixed() Возвращает копию строки в окружении тега <tt>. fontcolor(цвет) Возвращает копию строки в окружении тега <font color=>. fontsize(размер) Возвращает копию строки в окружении тега <font size=>. italics() Возвращает копию строки в окружении тега <i>. link(url) Возвращает копию строки в окружении тега <a href=>.
Примеры "Глава 2". anchor("volume 2") /* эквивалентно HTML-коду: <A NAME="volume 2"> Глава 2</A> */ "Страница автора". link("http: /www. sstu. ru/toropova/index. html") /* эквивалентно HTML-коду: <A HREF = "http: / www. sstu. ru/toropova/index. html")> Страница автора</А> */
Функции вставки и замены подстрок Напишем функцию, которая заменяет в исходной строке все вхождения заданной подстроки на подстроку замены. Назовем эту функцию replacestr Она должна принимать три параметра: исходную строку s 1, заменяемую подстроку s 2 и подстроку s 3, которой следует заменить все вхождения s 2 в s 1 (s 2 может встречаться в s 1 несколько раз). Очевидно, прежде всего необходимо найти все вхождения s 2 в s 1. Если исходная строка не содержит в себе подстрок s 2, то функция должна вернуть исходную подстроку без всяких изменений. В противном случае требуется изъять из s 1 все вхождения s 2, а на их место вставить подстроку s 3. Полученная таким образом строка должна возвращаться функцией в качестве результата.
function replacestr(s 1, s 2, s 3) { var s = " " // обработанная часть строки while (true) { i = s 1. index. Of(s 2) // индекс вхождения s 2 в s 1 if (i >= 0) { s = s + s 1. substr(0, i) + s 3 // обработанная часть строки s 1 = s 1. substr(i + s 2. length) // оставшаяся часть строки } else break } return s + s 1 } replacestr(" bacdae" , "a" , "X") // "b. Xcd. Xe" x = "Иванов" replacestr (x , "Иван" , "Федор") // "Федоров " Заметим, что если заменяемая подстрока s 2 является пустой, то цикл будет продолжаться бесконечно, поскольку пустая строка входит в состав любой строки.
3Obekty_string.ppt