SE@RCHER
SE@RCHER
Библиотека JAVASCRIPT
03www.ru
Библиотека JAVASCRIPT
03www.ru
Библиотека JAVASCRIPT
03www.ru
Золотая библиотека JAVASCRIPT
1997
примеры библиотеки javascriptПОЛЕЗНЫЕ СОВЕТЫ JAVASCRIPT + CSS
примеры библиотеки javascriptПОЛЕЗНЫЕ СОВЕТЫ JAVASCRIPT + CSS
примеры библиотеки javascriptПОЛЕЗНЫЕ СОВЕТЫ JAVASCRIPT + CSS

Объекты String

Объект, представляющий серию символов в строке.

Объект ядра

Реализован в

JavaScript 1.0: Объект String создаётся только символами в кавычках.

 

JavaScript 1.1, NES 2.0: добавлен конструктор String; добавлено свойство prototype; добавлен метод split; добавлена возможность передавать строки между скриптами различных окон или фрэймов (в предыдущих версиях Вы должны были добавить пустую строку в строку другого окна, чтобы обратиться к ней).

 

JavaScript 1.2, NES 3.0: добавлены методы concat, match, replace, search, sliceи substr.

 

JavaScript 1.3: добавлен метод toSource; изменены методы charCodeAt, fromCharCodeи replace.

Версия ECMA

ECMA-262

Создание

Конструктор String:

new String(string)

Параметр

string

Любая строка.

Описание

Объект String это оболочка вокруг строки данных примитивных типов. Не путайте строковой литерал с объектом String. Например, следующий код создаёт строковой литерал s1 и String-объект s2:

s1 = "foo"            // создаётся строковое литеральное значение
s2 = new String("foo") // создаётся String-объект

Вы можете вызвать любой метод String-объекта в строковом литеральном значении -- JavaScript автоматически конвертирует строковой литерал во временный String-объект, вызывает метод, затем уничтожает временный String-объект. Можно также использовать свойство String.length со строковым литералом.

Вы должны использовать строковые литералы, если нет специальной необходимости использовать String-объект, поскольку String-объекты могут вести себя непредсказуемо. Например:

s1 = "2 + 2"            // создаёт строковое литеральное значение
s2 = new String("2 + 2") // создаёт String-объект
eval(s1)     // возвращает число 4
eval(s2)     // возвращает строку "2 + 2"

Строка может быть представлена как литерал, заключённый в одинарные или двойные кавычки; например, "Netscape" или 'Netscape'.

Вы можете конвертировать значение любого объекта в строку, используя функцию верхнего уровня String.

Свойства. Резюме

Свойство Описание
constructor

Специфицирует функцию, которая создаёт прототип объекта.

length

Отражает длину строки.

prototype

Позволяет добавлять свойства в String-объект.

Методы. Резюме.

Метод
(пример)
[клик для просмотра]
Описание
anchor

Создаёт HTML-якорь, используемый как цель гиперссылки.

big

Выводит строку шрифтом big/увеличенным, как в тэге BIG.

blink

Выводит строку шрифтом blink, как в тэге BLINK.

bold

Выводит строку жирным шрифтом, как в тэге B.

charAt

Возвращает символ по специфицированному индексу.

charCodeAt

Возвращает число, указывающее Unicode-значение символа по данному индексу.

concat

Объединяет текст двух строк и возвращает новую строку.

fixed

Выводит строку шрифтом фиксированной ширины, как в тэге TT.

fontcolor

Выводит строку специфицированным цветом, как в тэге <FONT COLOR=color>.

fontsize

Выводит строку шрифтом специфицированного размера, как в тэге <FONT SIZE=size>.

fromCharCode

Возвращает строку, созданную с использованием специфицированной последовательности Unicode-значений.

indexOf

Возвращает индекс, в вызывающем String-объекте, первого появления специфицированного значения или -1 - если оно не найдено.

italics

Выводит строку шрифтом italic, как в тэге I.

lastIndexOf

Возвращает индекс, в вызывающем String-объекте, последнего появления специфицированного значения или -1 - если оно не найдено.

link

Создаёт гиперссылку HTML, которая вызывает другой URL.

match

Используется для поиска совпадений регулярного выражения со строкой.

replace

Используется для поиска совпадений регулярного выражения со строкой и для замены совпавшей подстроки новой подстрокой.

search

Выполняет поиск совпадения между регулярным выражением и специфицированной строкой.

slice

Извлекает часть строки и возвращает новую строку.

small

Выводит строку шрифтом small/уменьшенным, как в тэге SMALL.

split

Разделяет String-объект на массив строк, разделяя строку на подстроки.

strike

Выводит строку перечёркнутым шрифтом, как в тэге STRIKE.

sub

Выводит строку как subscript/подиндекс, как в тэге SUB.

substr

Возвращает специфицированное количество символов строки, начинающихся от специфицированного места.

substring

Возвращает символы строки между двумя индексами строки.

sup

Выводит строку как superscript/надиндекс, как в тэге SUP.

toLowerCase

Возвращает вызывающую строку, конвертированную в нижний регистр.

toSource

Возвращает литерал объекта, представляющий специфицированный объект; можно использовать это значение для создания нового объекта. Переопределяет метод Object.toSource.

toString

Возвращает строку, представляющую специфицированный объект. Переопределяет метод Object.toString.

toUpperCase

Возвращает вызывающую строку, конвертированную в верхний регистр.

valueOf

Возвращает примитивное значение специфицированного объекта. Переопределяет метод Object.valueOf.

Кроме того, этот объект наследует методы watch и unwatch из объекта Object.

Примеры

Пример 1: Строковой литерал. Создаётся строковой литерал:

var last_name = "Schaefer"

Пример 2: Свойства строкового литерала. Следующие операторы вычисляются в 8, "SCHAEFER" и "schaefer":

last_name.length
last_name.toUpperCase()
last_name.toLowerCase()

Пример 3: Доступ к определённым символам строки. Вы можете представить строку как массив символов. Тогда можно получить доступ к отдельным символам строки по индексу этого массива.

var myString = "Hello"
myString[0] // возвращает "H"

Пример 4: Передача строки между скриптами в различных окнах и фрэймах. Следующий код создаёт две строковые переменные и открывает второе окно:

var lastName = "Schaefer"
var firstName = "Jesse"
empWindow=window.open('string2.html','window1','width=300,height=300')

Если код HTML второго окна (string2.html) создаёт две строковые переменные empLastName и empFirstName, следующий код в первом окне присваивает значения переменным второго окна:

empWindow.empFirstName=firstName
empWindow.empLastName=lastName

А этот код в первом окне выводит значения переменных второго окна:

alert('empFirstName in empWindow is ' + empWindow.empFirstName)
alert('empLastName in empWindow is ' + empWindow.empLastName)

anchor


Создаёт HTML-якорь, который используется как цель гипертекстовой ссылки/target.

Синтаксис

anchor(nameAttribute)

Параметр

nameAttribute

Строка.

Описание

Используйте метод anchor с методами document.write или document.writeln для программного создания и вывода якоря документа. Создайте якорь методом anchor, а затем вызовите write или writeln для отображения этого якоря в документе. В серверном JavaScript используйте для этого функцию write.

В этом синтаксисе строка nameAttribute представляет атрибут NAME тэга A, а строка, вызывающая этот метод, это текст, видимый пользователю.

Якоря, созданные методом anchor, становятся элементами массива document.anchors.

Пример

Открывается окно msgWindow и создаётся якорь для оглавления:

var myString="Table of Contents"
msgWindow.document.writeln(myString.anchor("contents_anchor"))

Предыдущий пример даст тот же результат, что и этот HTML:

<A NAME="contents_anchor">Table of Contents</A>

big


Выводит строку увеличенным шрифтом, как при использовании тэга BIG.

Синтаксис

big()

Параметры

Отсутствуют.

Описание

Используйте метод big вместе с методами write или writeln для форматирования и отображения строки в документе. В серверном JavaScript используйте функцию write для отображения строки.

Пример

Используются методы работы со строками для изменения размера текста строки:

var worldString="Hello, world"
document.write(worldString.small())
document.write("<P>" + worldString.big())
document.write("<P>" + worldString.fontsize(7))

Такой же вывод даст следующий HTML:

<SMALL>Hello, world</SMALL>
<P><BIG>Hello, world</BIG>
<P><FONTSIZE=7>Hello, world</FONTSIZE>

 

blink


Выводит строку шрифтом blink, как при использовании тэга BLINK.

Синтаксис

blink()

Параметры

Отсутствуют.

Описание

Используйте метод blink вместе с методами write или writeln для форматирования и отображения строки в документе. В серверном JavaScript используйте функцию write для отображения строки.

Пример

Здесь используются методы работы со строками для изменения форматирования строки:

var worldString="Hello, world"
document.write(worldString.blink())
document.write("<P>" + worldString.bold())
document.write("<P>" + worldString.italics())
document.write("<P>" + worldString.strike())

Предыдущий пример даст тот же вывод, что и следующий  HTML:

<BLINK>Hello, world</BLINK>
<P><B>Hello, world</B>
<P><I>Hello, world</I>
<P><STRIKE>Hello, world</STRIKE>

 

bold


Выводит строку шрифтом bold, как при использовании тэга B.

Синтаксис

bold()

Параметры

Отсутствуют.

Описание

Используйте метод bold вместе с методами write или writeln для форматирования и отображения строки в документе. В серверном JavaScript используйте функцию write для отображения строки.

Пример

Здесь используются методы работы со строками для изменения форматирования строки:

var worldString="Hello, world" 
document.write(worldString.blink())
document.write("<P>" + worldString.bold())
document.write("<P>" + worldString.italics())
document.write("<P>" + worldString.strike())

Предыдущий пример даст тот же вывод, что и следующий  HTML:

<BLINK>Hello, world</BLINK>
<P><B>Hello, world</B>
<P><I>Hello, world</I>
<P><STRIKE>Hello, world</STRIKE>

 

charAt


Возвращает специфицированный символ из строки.

Синтаксис

charAt(index)

Параметр

index

Целое число в диапазоне от 0 до числа, меньшего длины строки на 1.

Описание

Символы строки индексируются слева направо. Индекс первого символа строки равен 0, а последнего (для строки с именем stringName) stringName.length - 1. Если предоставляемый Вами index выходит за пределы указанного диапазона, JavaScript возвращает пустую строку.

Пример

Отображаются символы из различных мест строки "Brave new world":

var anyString="Brave new world"
document.writeln("The character at index 0 is " + anyString.charAt(0))
document.writeln("The character at index 1 is " + anyString.charAt(1))
document.writeln("The character at index 2 is " + anyString.charAt(2))
document.writeln("The character at index 3 is " + anyString.charAt(3))
document.writeln("The character at index 4 is " + anyString.charAt(4))

На выходе будет:

The character at index 0 is B
The character at index 1 is r
The character at index 2 is a
The character at index 3 is v
The character at index 4 is e

charCodeAt


Возвращает число - Unicode-значение символа, находящегося в строке по данному индексу.

Синтаксис

charCodeAt([index])

Параметр

index

Целое число в диапазоне от 0 до числа, меньшего длины строки на 1. По умолчанию имеет значение 0.

Описание

Unicode-значения в диапазоне от 0 до 65,535. Первые 128 Unicode-значений совпадают напрямую с набором символов ASCII. Об Unicode см. книгу Клиентский JavaScript. Руководство.

Обратная Совместимость

JavaScript 1.2. Метод charCodeAt возвращает число - значение из набора символов ISO-Latin-1 для символа по данному индексу в строке. Диапазон значений для набора ISO-Latin-1 - от 0 до 255. Первые числа от 0 до 127 напрямую соответствуют набору символов ASCII.

Пример

Пример 1. Этот пример возвращает 65, Unicode-значение латинской заглавной A.

"ABC".charCodeAt(0) // возвращает 65

Пример 2. Создаётся событие для симуляции нажатия клавиши. Событие KeyPress имеет свойство which, которое представляет ASCII-значение нажатой клавиши. Если Вам известна буква, число или символ, Вы можете использовать charCodeAt для предоставления ASCII-значения в свойство which.

//создаётся Еvent-объект с нужными значениями свойств
ev = new Event()
ev.type = KeyPress
ev.layerX = 150
//присваиваются значения свойствам layerY, pageX, pageY, screenX и screenY
...
//присваивается ASCII-значение свойству which
ev.which = "v".charCodeAt(0)
//assign modifier property
ev.modifiers = <FONT COLOR="#FF0080">How do I do this?</FONT>

concat


Объединяет текст двух или более строк и возвращает новую строку.

Синтаксис

concat(string2, string3[, ..., stringN])

Параметры

string2...
stringN

Объединяемые строки.

Описание

concat объединяет текст строк и возвращает новую строку. Изменения в тексте одной строки не влияют на другую.

Пример

s1="Oh "
s2="what a beautiful "
s3="mornin'."
s4=s1.concat(s2,s3) // возвращает "Oh what a beautiful mornin'."

constructor


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

 

fixed


Выводит строку шрифтом фиксированной ширины, как при использовании тэга TT.

Синтаксис

fixed()

Параметры

Отсутствуют.

Описание

Используйте метод fixed вместе с методами write или writeln для форматирования и отображения строки документа. В серверном JavaScript используйте функцию write для отображения строки.

Пример

Метод fixed используется для изменения форматирования строки:

var worldString="Hello, world"
document.write(worldString.fixed())

Предыдущий пример даст тот же вывод, что и следующий  HTML:

<TT>Hello, world</TT>

fontcolor


Отображает строку специфицированным цветом, как при использовании тэга <FONT COLOR=color>.

Синтаксис

fontcolor(color)

Параметр

color

Строка, выражающая цвет как 16-ричный RGB-триплет или как строковой литерал. Строковые литералы - названия цветов перечислены в книге Клиентский JavaScript. Руководство.

Описание

Используйте метод fontcolor вместе с методами write или writeln для форматирования и отображения строки в документе. В серверном JavaScript используйте функцию write для отображения строки.

Если color выражается как 16-ричный RGB-триплет, Вы обязаны использовать формат rrggbb. Например, 16-ричные RGB-значения для цвета salmon будут red=FA, green=80 и blue=72, то есть RGB-триплет для salmon будет "FA8072".

Метод fontcolor переопределяет значение, установленное в свойстве fgColor.

Пример

Метод fontcolor используется для изменения цвета строки:

var worldString="Hello, world"
document.write(worldString.fontcolor("maroon") +
   " is maroon in this line")
document.write("<P>" + worldString.fontcolor("salmon") +
   " is salmon in this line")
document.write("<P>" + worldString.fontcolor("red") +
   " is red in this line")
document.write("<P>" + worldString.fontcolor("8000") +
   " is maroon in hexadecimal in this line")
document.write("<P>" + worldString.fontcolor("FA8072") +
   " is salmon in hexadecimal in this line")
document.write("<P>" + worldString.fontcolor("FF00") +
   " is red in hexadecimal in this line")

Предыдущий пример даст тот же вывод, что и следующий  HTML:

<FONT COLOR="maroon">Hello, world</FONT> is maroon in this line
<P><FONT COLOR="salmon">Hello, world</FONT> is salmon in this line
<P><FONT COLOR="red">Hello, world</FONT> is red in this line
<FONT COLOR="8000">Hello, world</FONT> 
is maroon in hexadecimal in this line
<P><FONT COLOR="FA8072">Hello, world</FONT>
is salmon in hexadecimal in this line
<P><FONT COLOR="FF00">Hello, world</FONT>
is red in hexadecimal in this line

fontsize


Вызывает отображение строки шрифта специфицированного размера, как при использовании тэга <FONT SIZE=size>.

Синтаксис

fontsize(size)

Параметр

size

Целое число в диапазоне от 1 до 7; строка, представляющая целое число со знаком в диапазоне от 1 до 7.

Описание

Используйте метод fontsize вместе с методами write или writeln для форматирования и отображения строки в документе. В серверном JavaScript используйте функцию write для отображения строки.

Если size специфицируется как целое число, Вы устанавливаете размер для stringName в один из 7 определённых размеров. Если size специфицируется как строка, такая как "-2", Вы настраиваете размер шрифта строки stringName относительно размера, установленного в тэге BASEFONT.

Пример

Метод string изменяет размер шрифта строки:

var worldString="Hello, world"
document.write(worldString.small())
document.write("<P>" + worldString.big())
document.write("<P>" + worldString.fontsize(7))

Предыдущий пример даст тот же вывод, что и следующий  HTML:

<SMALL>Hello, world</SMALL>
<P><BIG>Hello, world</BIG>
<P><FONTSIZE=7>Hello, world</FONTSIZE>

 

fromCharCode


Возвращает строку, созданную с использованием специфицированной последовательности Unicode-значений.

Синтаксис

fromCharCode(num1, ..., numN)

Параметр

num1, ..., numN

Последовательность чисел, которые являются Unicode-значениями.

Описание

Этот метод возвращает строку, а не String-объект.

Поскольку fromCharCode это static-метод объекта String, Вы всегда записываете его String.fromCharCode(), а не как метод созданного Вами String-объекта.

Обратная Совместимость

JavaScript 1.2. Метод fromCharCode возвращает строку, созданную с использованием специфицированной последовательности значений набора ISO-Latin-1.

Примеры

Пример 1. Этот пример возвращает строку "ABC".

String.fromCharCode(65,66,67)

Пример 2. Свойство which событий KeyDown, KeyPress и KeyUp содержит ASCII-значение клавиши клавиатуры, нажатой при возникновении события. Если Вы хотите получить фактическую букву, число или символ клавиши, Вы можете использовать fromCharCode. Следующий пример возвращает букву, число или символ в свойстве which события KeyPress.

String.fromCharCode(KeyPress.which)

indexOf


Возвращает индекс первого появления специфицированного значения в вызывающем String-объекте, начиная поиск с fromIndex, или возвращает -1, если значение не найдено.

Синтаксис

indexOf(searchValue[, fromIndex])

Параметры

searchValue

Строка, представляющая искомое значение.

fromIndex

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

Описание

Символы в строке индексируются слева направо. Индекс первого символа равен 0, а индекс последнего символа строки stringName равен stringName.length - 1.

"Blue Whale".indexOf("Blue")    // возвращает 0
"Blue Whale".indexOf("Blute")   // возвращает -1
"Blue Whale".indexOf("Whale",0) // возвращает 5
"Blue Whale".indexOf("Whale",5) // возвращает 5
"Blue Whale".indexOf("",9)      // возвращает 9
"Blue Whale".indexOf("",10)     // возвращает 10
"Blue Whale".indexOf("",11)     // возвращает 10

Метод indexOf учитывает регистр. Например, следующее выражение возвращает -1:

"Blue Whale".indexOf("blue")

Примеры

Пример 1. Методы indexOf и lastIndexOf используются для локализации значений в строке "Brave new world."

var anyString="Brave new world"
// Выводит 8
document.write("<P>The index of the first w from the beginning is " +
   anyString.indexOf("w"))
// Выводит 10
document.write("<P>The index of the first w from the end is " +
   anyString.lastIndexOf("w"))
// Выводит 6
document.write("<P>The index of 'new' from the beginning is " +
   anyString.indexOf("new"))
// Выводит 6
document.write("<P>The index of 'new' from the end is " +
   anyString.lastIndexOf("new"))

Пример 2. В этом примере определены две строковые переменные. Они содержат одинаковые строки, но вторая строка содержит символы в верхнем регистре. Первый метод writeln выводит 19. Поскольку метод indexOf учитывает регистр символов, строка "cheddar" не найдена в строке myCapString, поэтому второй метод writeln выведет -1.

myString="brie, pepper jack, cheddar"
myCapString="Brie, Pepper Jack, Cheddar"
document.writeln('myString.indexOf("cheddar") is ' +
   myString.indexOf("cheddar"))
document.writeln('<P>myCapString.indexOf("cheddar") is ' +
   myCapString.indexOf("cheddar"))

Пример 3. Здесь в count устанавливается количество вхождений буквы x в строке str:

count = 0;
pos = str.indexOf("x");
while ( pos != -1 ) {
   count++;
   pos = str.indexOf("x",pos+1);
}

italics


Выводит строку шрифтом italic, как при использовании тэга <I>.

Синтаксис

italics()

Параметры

Отсутствуют.

Описание

Используйте метод italics вместе с методами write или writeln для форматирования и отображения строки в документе. В серверном JavaScript используйте функцию write для отображения строки.

Пример

Здесь используются методы работы со строками для изменения форматирования строки:

var worldString="Hello, world"
document.write(worldString.blink())
document.write("<P>" + worldString.bold())
document.write("<P>" + worldString.italics())
document.write("<P>" + worldString.strike())

Предыдущий пример даст тот же вывод, что и следующий  HTML:

<BLINK>Hello, world</BLINK>
<P><B>Hello, world</B>
<P><I>Hello, world</I>
<P><STRIKE>Hello, world</STRIKE>

 

lastIndexOf


Возвращает индекс последнего появления специфицированного значения в вызывающем String-объекте или -1, если ничего не найдено. Поиск в вызывающей строке идёт в обратном направлении, справа налево, начиная с fromIndex.

Синтаксис

lastIndexOf(searchValue[, fromIndex])

Параметры

searchValue

Строка, представляющая искомое значение.

fromIndex

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

Описание

Символы в строке индексируются слева направо. Индекс первого символа равен 0, а индекс последнего символа равен stringName.length - 1.

"canal".lastIndexOf("a")   // возвращает 3
"canal".lastIndexOf("a",2) // возвращает 1
"canal".lastIndexOf("a",0) // возвращает -1
"canal".lastIndexOf("x")   // возвращает -1

Метод lastIndexOf учитывает регистр символов. Например, следующее выражение возвратит -1:

"Blue Whale, Killer Whale".lastIndexOf("blue")

Пример

Здесь методы indexOf и lastIndexOf используются для локализации значений в строке "Brave new world."

var anyString="Brave new world"
// Выводит 8
document.write("<P>The index of the first w from the beginning is " +
   anyString.indexOf("w"))
// Выводит 10
document.write("<P>The index of the first w from the end is " +
   anyString.lastIndexOf("w"))
// Выводит 6
document.write("<P>The index of 'new' from the beginning is " +
   anyString.indexOf("new"))
// Выводит 6
document.write("<P>The index of 'new' from the end is " +
   anyString.lastIndexOf("new"))

length


Длина строки.

Описание

Для null-строки длина будет равна 0.

Пример

Будет выведена цифра 8 в диалоговом окне Alert:

var x="Netscape"
alert("The string length is " + x.length)

link


Создаёт гипертекстовую HTML-ссылку, которая запрашивает другой URL.

Синтаксис

link(hrefAttribute)

Параметр

hrefAttribute

Любая строка, специфицирующая атрибут HREF тэга A; это должен быть правильный URL (относительный или абсолютный).

Описание

Используйте метод link для программного создания гиперссылки и последующего вызова write или writeln для отображения ссылки в документе. В серверном JavaScript используйте функцию write для отображения ссылки.

Ссылки, созданные методом link, становятся элементами массива links объекта document. См. document.links.

Пример

Слово "Netscape" выводится как гиперссылка, которая переводит пользователя на домашнюю страницу Netscape:

var hotText="Netscape"
var URL="http://home.netscape.com"
document.write("Click to return to " + hotText.link(URL))

Предыдущий пример даст тот же вывод, что и следующий  HTML:

Click to return to <A HREF="http://home.netscape.com">Netscape</A>

match


Используется для поиска совпадений регулярного выражения со строкой.

Синтаксис

match(regexp)

Параметр

regexp

Имя регулярного выражения. Это может быть имя переменной или литерал.

Описание

Если Вам нужно выполнить глобальный поиск совпадения или поиск с учётом регистра, включите в регулярное выражение флаги g (для глобального поиска) и i (для игнорирования регистра). Эти флаги могут использоваться вместе или по отдельности. Следующие два пример показывают, как использовать эти флаги вместе с match.

ПРИМЕЧАНИЕ: Если Вы выполняете поиск только для того, чтобы найти true или false, используйте String.search или метод test регулярного выражения.

Примеры

Пример 1. Здесь match используется для поиска подстроки 'Chapter' с последующим одним или более цифровыми символами, с последующей десятичной точкой и цифровыми символами 0 или более раз. Регулярно выражение включает флаг i, поэтому регистр символов игнорируется.

<SCRIPT> 
str = "For more information, see Chapter 3.4.5.1";
re = /(chapter \d+(\.\d)*)/i;
found = str.match(re);
document.write(found);
</SCRIPT>

Возвращает массив, содержащий Chapter 3.4.5.1,Chapter 3.4.5.1,.1

'Chapter 3.4.5.1' это первое совпадение и первое значение, запомненное из (Chapter \d+(\.\d)*).

'.1' это второе значение, запомненное из (\.\d).

Пример 2. Здесь демонстрируется использование флагов global и ignore case вместе с match.

<SCRIPT> 
str = "abcDdcba";
newArray = str.match(/d/gi);
document.write(newArray);
</SCRIPT>

Возвращаемые массив содержит D, d.

prototype


Прототип для данного класса. Этот прототип можно использовать для добавления свойств и методов всем экземплярам класса. О прототипах см. Function.prototype.

replace


Находит совпадение регулярного выражения и строки и замещает совпавшую подстроку новой подстрокой.

Синтаксис

replace(regexp, newSubStr)
replace(regexp, function)
Версии до JavaScript 1.3:
replace(regexp, newSubStr)

Параметры

regexp

Имя регулярного выражения. Это может быть имя переменной или литерал.

newSubStr

Строка, помещаемая вместо строки, найденной с помощью regexp. Эта подстрока может содержать свойства объекта RegExp: $1, ..., $9, lastMatch, lastParen, leftContext и rightContext.

function

Функция, выполняемая после выполнения поиска совпадения.

Описание

Этот метод не изменяет String-объект, которым он вызывается; он просто возвращает новую строку.

Если Вы хотите выполнить глобальный поиск и замену или поиск без учёта регистра, включите флаги g (для глобального поиска) и i (игнорирование регистра) в регулярное выражение. Они могут быть включены вместе и отдельно. Следующие два примера показывают использование этих флагов вместе с replace.

Специфицирование функции в качестве параметра. Если Вы специфицируете функцию в качестве второго параметра, она вызывается после выполнения поиска совпадения. (Такое использование функции часто называется "лямбда-выражение".)

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

Вложенная функция может использовать совпавшие подстроки для определения новой строки (newSubStr), которая замещает найденную подстроку. Вы получаете совпавшие подстроки через параметры Вашей функции. Первый параметр Вашей функции содержит полностью совпавшую подстроку. Другие параметры могут использоваться для совпадений в скобках, для запоминания подсовпадений строк. Например, следующий метод replaceвозвращает XX.zzzz - XX , zzzz.

"XXzzzz".replace(/(X*)(z*)/,
                   function (str, p1, p2) {
                      return str + " - " + p1 + " , " + p2;
                   }
                )

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

Примеры

Пример 1. Здесь регулярное выражение содержит флаги global и ignore case с разрешением методу replace замещать каждое вхождение 'apples' на 'oranges'.

<SCRIPT>
re = /apples/gi;
str = "Apples are round, and apples are juicy.";
newstr=str.replace(re, "oranges");
document.write(newstr)
</SCRIPT>

Будет напечатано "oranges are round, and oranges are juicy."

Пример 2. В этом примере регулярное выражение определено в методе replace и содержит флаг игнорирования регистра.

<SCRIPT>
str = "Twas the night before Xmas...";
newstr=str.replace(/xmas/i, "Christmas");
document.write(newstr)
</SCRIPT>

Будет напечатано "Twas the night before Christmas..."

Пример 3. Этот скрипт переключает слова в строке. Для замещающего текста используются значения свойств $1 и $2.

<SCRIPT LANGUAGE="JavaScript1.2">
re = /(\w+)\s(\w+)/;
str = "John Smith";
newstr = str.replace(re, "$2, $1");
document.write(newstr)
</SCRIPT>

Будет напечатано "Smith, John".

Пример 4. Здесь градусы по Фаренгейту замещаются эквивалентом по Цельсию. Градусы по Фаренгейту должны быть числом с конечной F. Функция возвращает число по Цельсию с конечной С. Например, если введено 212F, функция возвращает 100C. Если введено 0F, функция возвращает -17.77777777777778C.

Регулярное выражение test проверяет числа с конечной буквой F. Число по Фаренгейту доступно для Вашей функции через параметр $1. Функция устанавливает число по Цельсию на основе значения по Фаренгейту, передаваемого в строке функции f2c. Затем f2c возвращает число по Цельсию. Эта функция напоминает флаг s///e из Perl.

function f2c(x) {
   var s = String(x)
   var test = /(\d+(\.\d*)?)F\b/g
   return s.replace
      (test,
         myfunction ($0,$1,$2) {
            return (($1-32) * 5/9) + "C";
         }
      )
}

search


Выполняет поиск совпадения между регулярным выражением и данным String-объектом.

Синтаксис

search(regexp)

Параметр

regexp

Имя регулярного выражения. Это может быть имя переменной или литерал.

Описание

При успешном выполнении, search возвращает индекс регулярного выражения в строке. Иначе возвращает -1.

Если Вы хотите знать, найден ли патэрн в строке, используйте search (аналогично методу test регулярного выражения); для получения большей информации (и более медленного выполнения) используйте match (аналогичный методу exec регулярного выражения).

Пример

Печатается сообщение, содержание которого зависит от успешности прохождения теста.

function testinput(re, str){
   if (str.search(re) != -1)
      midstring = " contains ";
   else
      midstring = " does not contain ";
   document.write (str + midstring + re.source);
}

slice


Извлекает часть строки и возвращает новую строку.

Синтаксис

slice(beginslice[, endSlice])

Параметры

beginSlice

Индекс с базой 0, с которого начинается извлечение.

endSlice

Индекс с базой 0, с которого заканчивается извлечение. При его отсутствии метод slice извлекает до конца строки.

Описание

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

slice извлекает до endSlice не включительно.
string.slice(1,4) извлекает символы со второго по четвёртый (символы с индексами  1, 2 и 3).

Как отрицательный индекс endSlice указывает смещение от конца строки, не входящее в результат.
string.slice(2,-1) извлекает символы с третьего до конца строки.

Пример

Здесь slice используется для создания новой строки.

<SCRIPT>
str1="The morning is upon us. "
str2=str1.slice(3,-5)
document.write(str2)
</SCRIPT>

Будет напечатано:

morning is upon

small


Вызывает отображение строки шрифтом small, как при использовании тэга <SMALL>.

Синтаксис

small()

Параметры

Отсутствуют.

Описание

Используйте метод small вместе с методами write или writeln для форматирования и отображения строки в документе. В серверном JavaScript используйте функцию write для отображения строки.

Пример

Используются string-методы для изменения размера строки:

var worldString="Hello, world"
document.write(worldString.small())
document.write("<P>" + worldString.big())
document.write("<P>" + worldString.fontsize(7))

Предыдущий пример даст тот же вывод, что и следующий  HTML:

<SMALL>Hello, world</SMALL>
<P><BIG>Hello, world</BIG>
<P><FONTSIZE=7>Hello, world</FONTSIZE>

 

split


Разделяет String-объект на массив строк, разделяя строку на подстроки.

Синтаксис

split([separator][, limit])

Параметры

separator

Специфицирует символ - разделитель строк. separator рассматривается как строка. Если separator отсутствует, возвращённый массив состоит из одного элемента - полной строки.

limit

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

Описание

Метод split возвращает новый массив.

Если найден, separator удаляется из подстрок, возвращённых в массиве. Если separator опущен, массив содержит один элемент - всю строку целиком.

В JavaScript 1.2 split имеет следующие дополнения:

  • Он может принимать в качестве аргумента регулярное выражение, а также фиксированную строку, которой разделяется строка-объект. Если separator это регулярное выражение, любые включённые скобки вызывают включение подсовпадений в возвращаемый массив.
  • Он может принимать limit-счётчик, поэтому результирующий массив не включает ведомые пустые элементы.
  • Если LANGUAGE="JavaScript1.2" специфицирован в тэге SCRIPT, string.split(" ") делит при любом появлении 1 или более пробельных символов, включая space/пробел, tab\табуляцию, line feed/прогон строки и возврат каретки. Для этого LANGUAGE="JavaScript1.2" обязан быть специфицирован в тэге <SCRIPT>.

Примеры

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

function splitString (stringToSplit,separator) {
   arrayOfStrings = stringToSplit.split(separator)
   document.write ('<P>The original string is: "' + stringToSplit + '"')
   document.write ('<BR>The separator is: "' + separator + '"')
   document.write ("<BR>The array has " + arrayOfStrings.length + " elements: ")
   for (var i=0; i < arrayOfStrings.length; i++) {
      document.write (arrayOfStrings[i] + " / ")
   }
}
var tempestString="Oh brave new world that has such people in it."
var monthString="Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec"
var space=" "
var comma=","
splitString(tempestString,space)
splitString(tempestString)
splitString(monthString,comma)

Этот пример даст на выходе:

The original string is: "Oh brave new world that has such people in it."
The separator is: " "
The array has 10 elements: Oh / brave / new / world / that / has / such / people / in / it. /
The original string is: "Oh brave new world that has such people in it."
The separator is: "undefined"
The array has 1 elements: Oh brave new world that has such people in it. /
The original string is: "Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec"
The separator is: ","
The array has 12 elements: Jan / Feb / Mar / Apr / May / Jun / Jul / Aug / Sep / Oct / Nov / Dec /

Пример 2. Рассмотрим следующий скрипт:

<SCRIPT LANGUAGE="JavaScript1.2"> 
str="She sells seashells \nby the\n seashore"
document.write(str + "<BR>")
a=str.split(" ")
document.write(a)
</SCRIPT>

С использованием LANGUAGE="JavaScript1.2" это скрипт даст:

"She", "sells", "seashells", "by", "the", "seashore"

Без LANGUAGE="JavaScript1.2" этот скрипт разделит только по одиночным пробельным символам:

"She", "sells", , , , "seashells", "by", , , "the", "seashore"

Пример 3. В этом примере split ищет 0 или более пробелов, с последующим  символом ; и с последующими 0 или более пробелов и, если это найдено, удаляет пробелы из строки.
nameList это массив, возвращаемый как результат работы split.

<SCRIPT>
names = "Harry Trump ;Fred Barney; Helen Rigby ; Bill Abel ;Chris Hand ";
document.write (names + "<BR>" + "<BR>");
re = /\s*;\s*/;
nameList = names.split (re);
document.write(nameList);
</SCRIPT>

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

Harry Trump ;Fred Barney; Helen Rigby ; Bill Abel ;Chris Hand
Harry Trump,Fred Barney,Helen Rigby,Bill Abel,Chris Hand

Пример 4. Здесь split ищет 0 или более пробелов в строке и возвращает первые три найденные разделения .

<SCRIPT LANGUAGE="JavaScript1.2">
myVar = " Hello World. How are you doing? ";
splits = myVar.split(" ", 3);
document.write(splits)
</SCRIPT>

Скрипт выведет:

["Hello", "World.", "How"]

strike


Вызывает отображение строки перечёркнутым/struck-out текстом, как при использовании тэга <STRIKE>.

Синтаксис

strike()

Параметры

Отсутствуют.

Описание

Используйте метод strike вместе с методами write или writeln для форматирования и отображения строки в документе. В серверном JavaScript используйте функцию write для отображения строки.

Пример

Здесь используются методы работы со строками для изменения форматирования строки:

var worldString="Hello, world"
document.write(worldString.blink())
document.write("<P>" + worldString.bold())
document.write("<P>" + worldString.italics())
document.write("<P>" + worldString.strike())

Предыдущий пример даст тот же вывод, что и следующий  HTML:

<BLINK>Hello, world</BLINK>
<P><B>Hello, world</B>
<P><I>Hello, world</I>
<P><STRIKE>Hello, world</STRIKE>

sub


Вызывает отображение строки как subscript/подиндекс, как при использовании тэга <SUB>.

Синтаксис

sub()

Параметры

Отсутствуют.

Описание

Используйте метод sub вместе с методами write или writeln для форматирования и отображения строки в документе. В серверном JavaScript используйте функцию write для генерации HTML.

Пример

Методы sub и sup используются для форматирования строки:

var superText="superscript"
var subText="subscript"
document.write("This is what a " + superText.sup() + " looks like.")
document.write("<P>This is what a " + subText.sub() + " looks like.")

Предыдущий пример даст тот же вывод, что и следующий  HTML:

This is what a <SUP>superscript</SUP> looks like.
<P>This is what a <SUB>subscript</SUB> looks like.

substr


Возвращает специфицированное количество символов строки, начиная со специфицированного места.

Синтаксис

substr(start[, length])

Параметры

start

Место, начиная с которого извлекаются символы.

length

Количество извлекаемых символов

Описание

start это индекс символа. Индекс первого символа равен 0, а индекс последнего символа меньше на 1, чем длина строки. substr начинает извлечение символов от start и извлекает length-количество символов.

Если start - положительное число, равное длине строки или более, substr не возвращает символов.

Если start - отрицательное число, substr использует его как индекс символа. начиная от конца строки.
Если start - отрицательное число и abs(start) больше длины строки, substr использует 0 как start-индекс.

Если length равна 0 или отрицательная, substr не возвращает символов.
Если значение length опущено, start извлекает символы до конца строки.

Пример

Рассмотрим такой скрипт:

<SCRIPT LANGUAGE="JavaScript1.2">
str = "abcdefghij"
document.writeln("(1,2): ", str.substr(1,2))
document.writeln("(-2,2): ", str.substr(-2,2))
document.writeln("(1): ", str.substr(1))
document.writeln("(-20, 2): ", str.substr(1,20))
document.writeln("(20, 2): ", str.substr(20,2))
</SCRIPT>

Этот скрипт выведет:

(1,2): bc
(-2,2): ij
(1): bcdefghij
(-20, 2): bcdefghij
(20, 2):

substring


Возвращает поднабор String-объекта.

Синтаксис

substring(indexA, indexB)

Параметры

indexA

Целое число в диапазоне от 0 до числа, меньшего длины строки на 1.

indexB

Целое число в диапазоне от 0 до числа, меньшего длины строки на 1.

Описание

substring извлекает символы от indexA до indexB не включительно. Точнее:

  • Если indexA меньше 0, indexA рассматривается так, как если бы он был 0.
  • Если indexB больше stringName.length, indexB рассматривается так, как если бы это было stringName.length.
  • Если indexA равен indexB, substring возвращает пустую строку.
  • Если indexB опущен, indexA извлекает символы до конца строки.

В JavaScript 1.2, используя LANGUAGE="JavaScript1.2" в тэге SCRIPT:

  • Если indexA больше indexB, JavaScript выдаёт ошибку времени выполнения (out of memory).

В JavaScript 1.2 без LANGUAGE="JavaScript1.2" в тэге SCRIPT:

  • Если indexA больше indexB, JavaScript возвращает подстроку, начинающуюся с indexB и заканчивающуюся на indexA - 1.

Примеры

Пример 1. Здесь substring используется для отображения символов их строки "Netscape":

var anyString="Netscape"
// Выводит "Net"
document.write(anyString.substring(0,3))
document.write(anyString.substring(3,0))
// Выводит "cap"
document.write(anyString.substring(4,7))
document.write(anyString.substring(7,4))
// Выводит "Netscap"
document.write(anyString.substring(0,7))
// Выводит "Netscape"
document.write(anyString.substring(0,8))
document.write(anyString.substring(0,10))

Пример 2. Заменяется подстрока в строке. Заменяются отдельные символы и подстроки. Вызов функции в конце примера изменяет строку "Brave New World" на "Brave New Web".

function replaceString(oldS,newS,fullS) {
// заменяет oldS на newS в строке fullS
   for (var i=0; i<fullS.length; i++) {
      if (fullS.substring(i,i+oldS.length) == oldS) {
         fullS = fullS.substring(0,i)+newS+fullS.substring(i+oldS.length,fullS.length)
      }
   }
   return fullS
}
replaceString("World","Web","Brave New World")

Пример 3. В JavaScript 1.2, используя LANGUAGE="JavaScript1.2", следующий скрипт выдаёт ошибку времени выполнения (out of memory).

<SCRIPT LANGUAGE="JavaScript1.2">
str="Netscape"
document.write(str.substring(0,3);
document.write(str.substring(3,0);
</SCRIPT>

Без LANGUAGE="JavaScript1.2" вышеприведённый скрипт напечатает следующее:

Net Net

Во втором write числа-индексы меняются местами.

sup


Вызывает отображение строки superscript/надиндекс, как при использовании тэга <SUP>.

Синтаксис

sup()

Параметры

Отсутствуют.

Описание

Используйте метод sup вместе с методами write или writeln для форматирования и отображения строки в документе. В серверном JavaScript используйте функцию write для генерации HTML.

Пример

Методы sub и sup использованы для форматирования строки:

var superText="superscript"
var subText="subscript"
document.write("This is what a " + superText.sup() + " looks like.")
document.write("<P>This is what a " + subText.sub() + " looks like.")

Предыдущий пример даст тот же вывод, что и следующий  HTML:

This is what a <SUP>superscript</SUP> looks like.
<P>This is what a <SUB>subscript</SUB> looks like.

toLowerCase


Возвращает вызвавшее строковое значение, конвертированное в нижний регистр.

Синтаксис

toLowerCase()

Параметры

Отсутствуют.

Описание

Метод toLowerCase возвращает значение строки, конвертированное в нижний регистр. toLowerCase не влияет на само значение строки.

Пример

Выводится строка "alphabet":

var upperText="ALPHABET"
document.write(upperText.toLowerCase())

toSource


Возвращает строку, представляющую исходный код объекта.

Синтаксис

toSource()

Параметры

Отсутствуют.

Описание

Метод toSource возвращает следующие значения:

  • Для встроенного объекта String - метод toSource возвращает следующую строку, указывающую, что исходный код недоступен:
       function String() {
          [native code]
       }
  • Для экземпляров объекта String или строковых литералов - метод toSource возвращает строку, представляющую исходный код.

Этот метод обычно вызывается внутренне в JavaScript, а не явно в коде.

toString


Возвращает строку, представляющую специфицированный объект.

Синтаксис

toString()

Параметры

Отсутствуют.

Описание

Объект String переопределяет метод toString объекта Object; он не наследует Object.toString. Для String-объектов метод toString возвращает строку, представляющую объект.

Пример

Отображается строковое значение String-объекта:

x = new String("Hello world");
alert(x.toString())      // Выводит "Hello world"

toUpperCase


Возвращает вызвавшее строковое значение, конвертированное в верхний регистр.

Синтаксис

toUpperCase()

Параметры

Отсутствуют.

Описание

Метод toUpperCase возвращает значение строки, конвертированное в верхний регистр. toUpperCase не влияет на значение самой строки.

Пример

Выводится строка "ALPHABET":

var lowerText="alphabet"
document.write(lowerText.toUpperCase())

valueOf


Возвращает примитивное значение String-объекта.

Синтаксис

valueOf()

Параметры

Отсутствуют.

Описание

Метод valueOf объекта String возвращает примитивное значение String-объекта как тип данных string. Это значение эквивалентно String.toString.

Этот метод обычно вызывается внутренне в JavaScript, а не явно в коде.

Пример

x = new String("Hello world");
alert(x.valueOf())          // Выводит "Hello world"