Шаг 30.
Основы JavaScript.
Методы объекта String

    На этом шаге мы рассмотрим основные методы объекта String.

    Перечислим наиболее употребительные методы этого объекта.

  1. Метод charAt(<индекс>) - возвращает строку, состоящую из одного символа, занимающего в строке указанную позицию.
    Приведем несколько примеров. Пусть имеется строка:
        S = new String ("Привет всем!");
    
    Тогда конструкции
        alert (S.charAt(0)); alert (S.charAt(S.length-1));
    
    выведут на экран соответственно первый ("П") и последний ("!") символы этой строки (напоминаем, что нумерация символов в строке начинается с нуля!).

  2. Метод charCodeAt(<индекс>) - результат работы этого метода аналогичен предыдущему, только возвращается число, представляющее собой код символа, расположенного на позиции, заданной номером индекс.
    Примеры:
    alert ("abпя".charCodeAt(0)); //Будет выведено 97 
    alert ("abпя".charCodeAt(2)); //Будет выведено 1087 
    alert ("abпя".charCodeAt(3)); //Будет выведено 1103 
    alert ("abпя".charCodeAt(10)); //Будет выведено NaN 
    alert ("".charCodeAt(0)); //Будет выведено NaN 
    

  3. Метод fromCharCode(<число1>, <число2>, …, <числоN>) - возвращает строку символов, числовые коды которой указаны в качестве параметров. Например, конструкция
        alert (String.fromCharCode(97, 1087, 1103));
    
    отобразит на экране диалоговое окно со строкой "aпя".

  4. Метод concat(<строка>) - производит конкатенацию (объединение) строк. Результатом работы этого метода будет новая строка.
    Например, после выполнения следующих конструкций:
    A = new String("Тепло");
    B = new String("ход");
    A = A.concat(B);
    
    переменная A будет иметь значение "Теплоход".

  5. Метод indexOf(<подстрока>,<индекс>) - производит поиск подстроки, заданной в качестве первого параметра, и возвращает номер ее первого вхождения в строку, для которой выполняется этот метод. Возвращаемое число отсчитывается от 0. Если поиск не удачен, то возвращается -1. Поиск в пустой строке всегда возвращает -1. Поиск пустой строки всегда возвращает 0. Второй параметр, не являющийся обязательным, указывает номер позиции, с которой следует начать поиск.
    Приведем несколько примеров использования этого метода. Пусть есть строка:
        A = new String("Привет всем!");
    
    Тогда выполнение следующих конструкций приведет к таким результатам:
        alert (A.indexOf("ем")); //Значение равно 9
        alert (A.indexOf("ура")); //Значение равно -1
        alert (A.indexOf("в")); //Значение равно 3
        alert (A.indexOf("в",5)); //Значение равно 7
        alert (A.indexOf("в",8)); //Значение равно -1
        alert (A.indexOf("")); //Значение равно 0
    

  6. Метод lastIndexOf(<подстрока>,<индекс>) - производит поиск подстроки, заданной в качестве первого параметра, и возвращает номер ее первого вхождения в строку, для которой выполняется этот метод. При этом поиск начинается с конца исходной строки, но возвращаемый индекс отсчитывается от ее начала, то есть от 0.
    Приведем несколько примеров (строка A определена в предыдущем методе):
        alert (A.lastIndexOf("ем")); //Значение равно 9
        alert (A.lastIndexOf("в")); //Значение равно 7
        alert (A.lastIndexOf("в",5)); //Значение равно 3
        alert (A.lastIndexOf("в",2)); //Значение равно -1
    

  7. Метод localeCompare(<строка>) - позволяет сравнивать строки в кодировке Unicode, то есть с учетом используемого браузером языка общения с пользователем. Общий вид использования метода следующий:
        <строка1>.localeCompare(<строка2>);
    
    Результатом работы метода является число. Если сравниваемые строки одинаковы, то число равно 0. Если строка1 меньше, чем строка2, то возвращается отрицательное число, в противном случае - положительное. Сравнение строк происходит по правилу сравнения десятичных дробей, то есть сравниваются коды соответствующих символов.
    Приведем пример. Пусть определены две строки:
        A = new String("abc");
        B = new String("bad");
    
    При выполнении конструкции:
        alert (A.localeCompare(B));
    
    на экран будет выведено диалоговое окно со значением -1, что свидетельствует о том, что первая строка меньше второй. Действительно, код символа b больше кода символа а (сравниваются первые символы строки).

        Сравним следующие строки:

        A = new String("abc");
        B = new String("я");
    
    Опять строка A будет меньше строки B, так как код символа я больше кода символа a.

  8. Метод slice(<индекс1>,<индекс2>) - возвращает подстроку исходной строки, начальный и конечный индексы которой указываются параметрами, за исключением последнего символа. Данный метод не изменяет исходную строку.

        Если второй параметр не указан, то возвращается подстрока с начальной позицией индекс1 и до конца строки. Отсчет позиций начинается с начала строки. Первый символ строки имеет индекс 0. Если второй параметр указан, то возвращается подстрока исходной строки, начиная с позиции индекс1 и до позиции индекс2, исключая последний символ. Если второй параметр отрицателен, то отсчет конечного индекса производится от конца строки. В этом заключается основное отличие метода slice() от substr(). Сравните также этот метод с методом substring().


    В качестве примера проведем анализ адреса электронной почты.
        A =  new String ("ivanov@mail.ru");
        i = A.indexOf("@"); //Значение равно 6
        N = A.slice(0,i); //Значение равно "ivanov"
        D = A.slice(i+1,-3); //Значение равно "mail"
    

  9. Метод split(<разделитель>,<ограничитель>) - возвращает массив элементов, полученных из исходной строки.

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

        Если разделитель - пустая строка, то возвращается массив символов строки.


    Приведем пример. Пусть есть строка:
        A = "Привет всем!";
    
    Выполнение следующих конструкций приведет к таким результатам:
        A.split(" "); //Значение - массив из элементов: "Привет", "всем!"
        A.split("e"); //Значение - массив из элементов: "Прив", "т вс", "м!"
        A.split("e",2)   //Значение - массив из элементов: "Прив", "т вс" 
    

  10. Метод substr(<индекс>,<длина>) - возвращает подстроку исходной строки, начальный индекс и длина которой указываются параметрами. Данный метод не изменяет исходную строку.

        Если второй параметр не указан, то возвращается подстрока с начальной позицией индекс и до конца строки. Отсчет позиций начинается с начала строки. Первый символ строки имеет индекс 0. Если второй параметр указан, то возвращается подстрока исходной строки, начиная с позиции индекс и с общим количеством символов, равным параметру длина. Сравните этот метод с методами slice() и substring(). В качестве примера проведем анализ адреса электронной почты.

        A =  new String ("ivanov@mail.ru");
        i = A.indexOf("@"); //Значение равно 6
        N = A.substr(0,i); //Значение равно "ivanov"
        D = A.substr(i+1); //Значение равно "mail.ru"
    

  11. Метод substring(<индекс1>,<индекс2>) - возвращает подстроку исходной строки, начальный и конечный индексы которой указываются параметрами. Данный метод не изменяет исходную строку.

        Порядок индексов не важен: наименьший из них считается начальным. Отсчет позиций начинается с начала строки. Первый символ строки имеет индекс 0. Символ, соответствующий конечному индексу, не включается в возвращаемую строку. Сравните этот метод с методами substr() и slice().


    Перепишем пример анализа адреса электронной почты с использованием рассматриваемого метода.
        A =  new String ("ivanov@mail.ru");
        i = A.indexOf("@"); //Значение равно 6
        N = A.substring(i,0); //Значение равно "ivanov"
        D = A.substr(i+1,A.length); //Значение равно "mail.ru"
    

  12. Методы toLocaleLowerCase(), toLowerCase() - переводят строку в нижний регистр.

  13. Методы toLocaleUpperCase(), toUpperCase() - переводят строку в верхний регистр.

        Методы toLocaleLowerCase() и toLocaleUpperCase() учитывают установленную кодировку браузера.

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


Создайте скрипты, приведенные в этом шаге, и проверьте их работу в браузере. Особое внимание обратите на конструкцию alert (A.indexOf("в",5));. Объясните полученный результат.

    На следующем шаге мы рассмотрим методы форматирования строк.




Предыдущий шаг Содержание Следующий шаг