Использование объектов String

Ранее вы уже использовали строковые данные. Строка представляет собой группу текстовых символов, сохраняемых в одной переменной и имеющих общее название. Приведем простой пример. Введем оператор, который присваивает текстовой переменной test значение "Это тест":

test = "Это тест";

Создание объектов String

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

Существует два способа создания объектов String. Первым способом вы уже пользовались. Во втором способе используется формальный синтаксис JavaScript. В следующих двух выражениях создается одинаковая строковая переменная:

test = "Это тест";
test = new String("Это тест");

Второй оператор содержит команду new, используемую для создания объектов. Этот оператор дает указание браузеру создать строковый объект, содержащий текст "Это тест" и определить его переменной test.

По сравнению с объектами объектно-ориентированных языков, объекты JavaScript создаются намного проще. Не существует разницы между объектами, созданными двумя приведенными выше способами.

Определение значения

Строковой переменной значение определяется подобно другим переменным. Два примера создания строковой переменной в предыдущем разделе демонстрируют эту операцию. Определить строковой переменной значение можно и после ее создания. Например, в приведенном ниже примере переменной test (уже имеющей значение) определяется новый текст:

test = "Это только тест";

Для объединения двух текстовых значений можно использовать оператор объединения (+). В листинге 10.1 приведен простой пример определения значения строковой переменной и объединения текста.

Листинг 10.1. Определение значения строковой переменной и объединение текста


1:   <HTML>
2:   <HEAD>
3:   <TITLE>Текстовая строка</TITLE>
4:   </HEAD>
5:   <BODY>
6:   <H1>Текстовая строка</H1>
7:   <SCRIPT LANGUAGE="JavaScript">
8:   test1 = "Это тест. ";
9:   test2 = "Это только тест";
10:  test = test1 + test2;
11:  alert(test);
12:  </SCRIPT>
13:  </BODY>
14:  </HTML>

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

В дополнение к оператору объединения вы можете использовать и оператор +=, позволяющий добавлять текст к содержимому уже созданного строкового объекта. В приведенном ниже примере, например, к содержимому строковой переменной sentence добавляется разделитель (.):

sentence += ".";

Символ сложения (+) используется в JavaScript и для суммирования числовых значений. Браузер автоматически, основываясь на определенных переменным типах данных, определяет, где выполнять операцию сложения, а где объединять текстовые значения. Если его использовать между текстом и числом, то число будет преобразовано в текст и добавлено к содержимому строкового объекта.

Определение длины строки

Время от времени вам понадобится знать количество символов, содержащееся в строковой переменной. Оно определяется свойством length объекта String, определяемым для любого строкового объекта. Чтобы использовать это свойство в сценарии, введите название объекта, а после него .length.

Например, свойство test.length определяет длину объекта test. Ниже приведен пример использования этого свойства:

test = "Это тест";
document.write(test.length);

В первом операторе переменной test определяется значение "Это тест". Второй оператор отображает длину этого значения. В нашем примере она составляет 8 символов.

Помните, что, хотя переменная test и строковая, свойство test.length имеет числовой тип данных и может использоваться в математических вычислениях.

Изменение регистра текста

Для изменения регистра символов текста объекта String используется два метода.

toUpperCase(). Преобразует символы текста в прописные.

toLowerCase(). Преобразует символы текста в строчные.

Например, следующий оператор позволяет отображать значение строковой переменной test символами нижнего регистра:

document.write(test.toLowerCase());

Принимая во внимание, что переменная test имеет значение "Это тест", на экране появится сообщение:

это тест

Заметьте, что при этом значение переменной test остается прежним. Этот метод создает другой вариант значения переменной - введенный только строчными символами. Если вы хотите изменить значение строковой переменной, используйте следующий оператор:

test = test.toLowerCase();

Как вы уже наверное заметили, синтаксис этих методов похож на синтаксис свойства length строкового объекта. Разница между записью кода свойства и метода состоит в использовании скобок. В методах toLowerCase() и toUpperCase() в скобках дополнительные параметры не используются, хотя вводить их и обязательно.

Подстроковые переменные

При частом использовании строковых объектов возникает необходимость разбивки их значений на отдельные значения, сохраняемые в подстроковых переменных. Для получения части строковой переменной используется метод substring(), а метод charA() применяется для возвращения отдельного ее символа.

Использование части строковой переменной

Метод substring() возвращает часть значения строкового объекта, определенного двумя индексами, указанными в скобках. Для примера приведем оператор, который используется для отображения 4-6 символов значения переменной test:

document.write(test.substring(3,6));

Вы можете спросить почему в скобках введены числа 3 и 6. Чтобы понять это, вам необходимо изучить правила, согласно которым определяются индексы в скобках метода substring().

  • Индексирование текста начинается с 0. Поэтому четвертый символ будет иметь индекс 3.
  • Второй индекс определяется исключительно. Поскольку шестой символ имеет индекс 5, то в скобках указывается индекс 6.
  • Оба индекса указываются в произвольном порядке. В нашем примере сначала указан меньший индекс. Вариант (6,3) приведет к тому же результату.

Приведу еще одни пример. Пусть английскому алфавиту определяется переменная alpha:

alpha = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";

Следующие операторы демонстрируют использование метода substring():

alpha.substring(0,4) возвращает значение ABCD

alpha.substring(10,12) возвращает значение KL

alpha.substring(12,10) возвращает значение KL. Поскольку 10<12, он используется в качестве начального индекса

alpha.substring(6,7) возвращает значение G

alpha.substring(24,26) возвращает значение YZ

alpha.substring(0,26) возвращает весь алфавит

alpha.substring(6,6) возвращает нулевое значение или пустую строку. Если индексы, приведенные в скобках, одинаковы, то всегда возвращается нулевое значение.

Возвращение одного символа

Метод charA() используется для возвращения отдельного символа значения строкового объекта. Для его определения в скобках следует указать индекс или расположение символа. Индексирование значения строкового объекта начинается с 0. Ниже приведен пример выполнения его для объекта alpha:

alpha.charA(0) возвращает значение A

alpha.charA(12) возвращает значение M

alpha.charA(25) возвращает значение Z

alpha.charA(27) возвращает пустую строку, поскольку символа с таким индексом просто не существует.

Поиск подстроковой переменной

Еще одно назначение подстроковых переменных - это отыскание строковых переменных по содержащемуся в них тексту. Для этого используется метод indexOf(). Используется этот метод следующим образом: добавьте его код после названия строкового объекта и в скобках укажите текст, по которому проводится поиск. В приведенном ниже примере в значении объекта test ищется текст "текст":

location = test.indexOf("текст");

Для большинства объектов JavaScript необходимо точно соблюдать регистр символов слов, по которым проводится поиск. Вводите слово точно так, как оно определено в строковой переменной.

Значение, которое принимает переменная location - это диапазон индексов символов строки, которые составляют искомое слово. Первый индекс значения строковой переменной традиционно равен 0.

При необходимости позволяется добавлять в качестве условия поиска и начальный индекс, с которого проводится поиск текста. Например, следующее выражение позволяет отыскать слово "рыба" в значении строкового объекта temp, начиная с 20-го символа:

location = temp.indexOf("Рыба",19);

Предназначение второго параметра метода indexOf() - это поиск нескольких одинаковых текстовых фрагментов в значении строкового объекта. Зная расположение первого текстового фрагмента, вы задаете условия поиска таким образом, чтобы избежать его нахождения и выполнить поиск второго такого же фрагмента.

Второй метод, lastIndexOf(), выполняется подобным образом, но возвращает индекс последнего найденного текстового фрагмента в значении строковой переменной. Например, ниже приведен оператор отыскания индекса последнего расположения имени "Вася" в значении объекта names:

location = names.lastIndexOf("Вася");

Как и в случае с методом indexOf(), второй параметр используется для задания начального индекса поиска. Но в этом случае поиск проводится в направлении убывания индексов, а не увеличения.

nextn.bmp (246 bytes)

home.gif (161 bytes)

next.gif (900 bytes)

Сайт управляется системой uCoz