Объект, представляющий серию символов в строке.
JavaScript 1.0: Объект
JavaScript 1.1, NES 2.0: добавлен конструктор
JavaScript 1.2, NES 3.0: добавлены методы
JavaScript 1.3: добавлен метод | |
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
.
Свойство |
Описание
|
|
|
---|
Метод |
Описание
|
|
|
|
|
Возвращает число, указывающее Unicode-значение символа по данному индексу.
|
|
Выводит строку специфицированным цветом, как в тэге
Выводит строку шрифтом специфицированного размера, как в тэге
Возвращает строку, созданную с использованием специфицированной последовательности Unicode-значений.
Возвращает индекс, в вызывающем
|
Возвращает индекс, в вызывающем
|
Используется для поиска совпадений регулярного выражения со строкой.
Используется для поиска совпадений регулярного выражения со строкой и для замены совпавшей подстроки новой подстрокой.
Выполняет поиск совпадения между регулярным выражением и специфицированной строкой.
|
|
Разделяет
|
|
Возвращает специфицированное количество символов строки, начинающихся от специфицированного места.
|
|
Возвращает вызывающую строку, конвертированную в нижний регистр.
Возвращает литерал объекта, представляющий специфицированный объект; можно использовать это значение для создания нового объекта. Переопределяет метод
Возвращает строку, представляющую специфицированный объект. Переопределяет
метод
Возвращает вызывающую строку, конвертированную в верхний регистр.
Возвращает примитивное значение специфицированного объекта. Переопределяет метод |
---|
Кроме того, этот объект наследует методы 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)
Создаёт 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>
String.link
Выводит строку увеличенным шрифтом, как при использовании тэга 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>
String.fontsize
, String.small
Выводит строку шрифтом 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>
String.bold
, String.italics
,
String.strike
Выводит строку шрифтом 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>
String.blink
, String.italics
,
String.strike
Возвращает специфицированный символ из строки.
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
String.indexOf
, String.lastIndexOf
,
String.split
Возвращает число - Unicode-значение символа, находящегося в строке по данному индексу.
JavaScript 1.3: возвращает Unicode-значение, а не значение из набора символов ISO-Latin-1. | |
charCodeAt([index])
index | Целое число в диапазоне от 0 до числа, меньшего длины строки на 1. По умолчанию имеет значение 0. |
Unicode-значения в диапазоне от 0 до 65,535. Первые 128 Unicode-значений
совпадают напрямую с набором символов ASCII. Об Unicode см. книгу
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(string2, string3[, ..., stringN])
string2... |
concat
объединяет текст строк и возвращает новую строку. Изменения
в тексте одной строки не влияют на другую.
s1="Oh "
s2="what a beautiful "
s3="mornin'."
s4=s1.concat(s2,s3) //
возвращает "Oh what a beautiful mornin'."
Специфицирует функцию, которая создаёт прототип объекта. Заметьте, что значением этого свойства является ссылка на функцию, а не строка с именем функции.
См. Object.constructor
.
Выводит строку шрифтом фиксированной ширины, как при использовании тэга TT
.
fixed()
Используйте метод fixed
вместе с методами write
или
writeln
для форматирования и отображения строки документа.
В серверном JavaScript используйте функцию write
для отображения строки.
Метод fixed
используется для изменения форматирования строки:
var worldString="Hello, world"
document.write(worldString.fixed())
Предыдущий пример даст тот же вывод, что и следующий HTML:
<TT>Hello, world</TT>
Отображает строку специфицированным цветом, как при использовании тэга <FONT COLOR=color>
.
fontcolor(color)
color |
Строка, выражающая цвет как 16-ричный RGB-триплет или как строковой литерал.
Строковые литералы - названия цветов перечислены в книге
|
Используйте метод 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
Вызывает отображение строки шрифта специфицированного размера, как при
использовании тэга <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>
String.big
, String.small
Возвращает строку, созданную с использованием специфицированной последовательности Unicode-значений.
JavaScript 1.3: использует Unicode-значение, а не значение ISO-Latin-1 | |
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)
Возвращает индекс первого появления специфицированного значения в вызывающем 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);
}
String.charAt
, String.lastIndexOf
,
String.split
Выводит строку шрифтом 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>
String.blink
, String.bold
,
String.strike
Возвращает индекс последнего появления специфицированного значения в вызывающем 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"))
String.charAt
, String.indexOf
,
String.split
Для null-строки длина будет равна 0.
Будет выведена цифра 8 в диалоговом окне Alert:
var x="Netscape"
alert("The string length is " + x.length)
Создаёт гипертекстовую HTML-ссылку, которая запрашивает другой URL.
link(hrefAttribute)
hrefAttribute |
Любая строка, специфицирующая атрибут |
Используйте метод 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>
Anchor
Используется для поиска совпадений регулярного выражения со строкой.
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.
Прототип для данного класса. Этот прототип можно использовать для добавления
свойств и методов всем экземплярам класса. О прототипах см. Function.prototype
.
Находит совпадение регулярного выражения и строки и замещает совпавшую подстроку новой подстрокой.
JavaScript 1.3: поддерживается вложение функций на месте второго аргумента. |
replace(regexp, newSubStr)
replace(regexp, function)
replace(regexp, newSubStr)
regexp | Имя регулярного выражения. Это может быть имя переменной или литерал. |
newSubStr |
Строка, помещаемая вместо строки, найденной с помощью |
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";
}
)
}
Выполняет поиск совпадения между регулярным выражением и данным 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(beginslice[, endSlice])
beginSlice | |
endSlice |
Индекс с базой 0, с которого заканчивается извлечение. При его отсутствии метод |
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>
Вызывает отображение строки шрифтом 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>
String.big
, String.fontsize
Разделяет String
-объект на массив строк, разделяя строку на подстроки.
split([separator][, limit])
Метод split
возвращает новый массив.
Если найден, separator
удаляется из подстрок, возвращённых в
массиве. Если separator
опущен, массив содержит один элемент - всю строку целиком.
В JavaScript 1.2 split
имеет следующие дополнения:
separator
это регулярное выражение, любые включённые скобки вызывают включение
подсовпадений в возвращаемый массив.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"]
String.charAt
, String.indexOf
, String.lastIndexOf
Вызывает отображение строки перечёркнутым/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>
String.blink
, String.bold
, String.italics
Вызывает отображение строки как 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.
String.sup
Возвращает специфицированное количество символов строки, начиная со специфицированного места.
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
:
В 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"
вышеприведённый скрипт напечатает
следующее:
Во втором write
числа-индексы меняются местами.
substr
Вызывает отображение строки 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.
String.sub
Возвращает вызвавшее строковое значение, конвертированное в нижний регистр.
toLowerCase()
Метод toLowerCase
возвращает значение строки, конвертированное в
нижний регистр. toLowerCase
не влияет на само значение строки.
var upperText="ALPHABET"
document.write(upperText.toLowerCase())
String.toUpperCase
Возвращает строку, представляющую исходный код объекта.
toSource()
Метод toSource
возвращает следующие значения:
String
- метод toSource
возвращает
следующую строку, указывающую, что исходный код недоступен:function String() {
[native code]
}
String
или строковых литералов - метод
toSource
возвращает строку, представляющую исходный код.Этот метод обычно вызывается внутренне в JavaScript, а не явно в коде.
Возвращает строку, представляющую специфицированный объект.
toString()
Объект String
переопределяет метод toString
объекта Object
; он не наследует Object.toString
.
Для String
-объектов метод toString
возвращает строку, представляющую объект.
Отображается строковое значение String-объекта:
x = new String("Hello world");
alert(x.toString()) // Выводит "Hello world"
Object.toString
Возвращает вызвавшее строковое значение, конвертированное в верхний регистр.
toUpperCase()
Метод toUpperCase
возвращает значение строки, конвертированное в
верхний регистр. toUpperCase
не влияет на значение самой строки.
var lowerText="alphabet"
document.write(lowerText.toUpperCase())
String.toLowerCase
Возвращает примитивное значение String-объекта.
valueOf()
Метод valueOf
объекта String
возвращает примитивное значение String-объекта как тип данных string. Это
значение эквивалентно String.toString
.
Этот метод обычно вызывается внутренне в JavaScript, а не явно в коде.
x = new String("Hello world");
alert(x.valueOf()) // Выводит "Hello world"
String.toString
, Object.valueOf
Дата последнего обновления: 28 мая 1999 года.
Copyright (c) 1999