Главная
Простейшие операторы
Операторы условия
Циклы
Массивы
Массивы II
Строки
Функции I
Функции II

Свойства и методы объекта String

  • length. С этим свойством мы уже знакомы: оно определяет количество символов в строке:
  • <script>
    s=prompt("Введите какое-нибудь слово", "");
    alert("В вашем слове " +s.length +" букв");
    </script>
  • concat(). Объединяет две строки в одну. Данный метод должен быть хорошо вам знаком из массивов, поэтому мы не будем на нем подробно останавливаться.
  • charAt(). Если в скобках указать число, то JScript прочтет символ стоящий в строке на этом месте:
  • <script>
    s=prompt("Введите слово", "");
    x=prompt("И число", "");
    alert("На " +x+ "-м месте в вашем слове стоит символ " +s.charAt(x));
    </script>
    Данный метод можно присваивать и какой-либо переменной.
  • indexOf(x, y). Возвращает номер элемента, равного x, при этом поиск начинается с элемента, стоящего под номером y.
  • <script>
    s=prompt("Введите какую-нибудь фразу", "");
    x=prompt("И что-нибудь более короткое для поиска в фразе", "");
    y=prompt("С какого элемента следует начать поиск?", "");
    alert("Первый раз слово для поиска встречается на " +s.indexOf(x,y)+ "-м элементе");
    </script>
    Если строки x нет в строке s, то возвращается значение "-1". Если y не указан или меньше нуля, то поиск начинается с 0-вого элемента.
  • lastIndexOf(x, y). Все то же самое, только возвращает номер последней встреченной подстроки x:
  • <script>
    s=prompt("Введите какую-нибудь фразу", "");
    x=prompt("И что-нибудь более короткое для поиска в фразе", "");
    y=prompt("С какого элемента следует начать поиск?", "");
    alert("Последний раз слово для поиска встречается на " +s.lastIndexOf(x,y)+ "-м элементе");
    </script>
    y при неуказании считается равным номеру последнего элемента строки.
    Упражнение 30 Вывести номера всех элементов, равных символу пробел (" ") в введенном пользователем слове.
  • slice(). Извлекает часть строки, работает также, как и с массивами. В следующем примере, программа оставляет из фразы, введенной пользователем, только одно слово:
  • <script>
    s=prompt("Введите фразу", "");
    x=s.indexOf(" ");
    s2=s.slice(0, x);
    alert("Вся фраза: \""+s+"\"\nВырезанное слово: \"" +s2+"\"');
    </script>
    Посмотрите, как происходит вырезка при отрицательном значении x.
  • substr(x, y). Опять извлекает часть строки длиной в y элементов, начиная с элемента номер x.
  • substring(). Идентичен методу slice(), только отрицательные аргументы в скобках здесь заменяются на нуль.
  • split(). Разбивает исходную строку на массив подстрок. В скобках указывается разделитель: каждый элемент создающегося массива равен подстроке от одного разделителя до следующего. Например, для строки "а1б1в1г1д1" метод "а1б1в1г1д1".split(1) вернет массив "а", "б", "в", "г", "д". Мы пропустили одну тему - "Регулярные выражения", а теперь она нам нужна. Регулярные выражения позволяют более гибко организовать условия поиска. Регулярные выражения чем-то напоминают специальные символы, вот таблица этих выражений, но перед этим отметим, что регулярные выражения должны браться в символы / и / (/т/ соответствует букве т, при этом /т/ понимается как регулярное выражение).
  • Символ
    Описание
    \ /n/ найдет символ n, а /\n/ найдет символ перевода на новую строку. При этом /^/ найдет символ как начало строки, а /\^/ найдет символ "крыша"
    ^ Уже обмолвились об этом - начало строки
    $ Конец строки
    * Соответствует повторению предыдущего символа ноль или более раз
    + Повторение предыдущего символа один или более раз
    ? Повторению предыдущего символа ноль или один раз
    . Любой символ, кроме символа новой строки
    ( ) В скобках указывается строка для поиска, которую программа найдет и запомнит
    (?: ) То же самое, но без запоминания. Например, /учени(?:к|ца) соответствует сразу двум словам: ученик и ученица
    (?= ) Если в предыдущем примере, заменить ?: на ?= , то будут находиться слова ученик, ученица, но не учение
    (?! ) Наоборот. Будет искать слова учение и др., но не ученик и не ученица
    | Например, ученик|ученица соответствует слову ученик или ученица
    {n} n - неотрицательное число. Соответствует n вхождениям предыдущего символа
    {n,} То же самое, только n и более вхождений
    {n,m} Не менее чем n и не более чем m вхождений предыдущего символа
    [ ] Любой символ из квадратных скобок
    [^ ] Любой символ, кроме заключенных в квадратные скобки
    [ - ] Любой символ из указанного диапазона
    \b Позиция между словом и пробелом или переводом на новую строку
    \B Любая позиция, кроме границы слова
    \d Любая цифра
    \D Все что угодно, кроме цифры
    \f Символ перевода формата (FF)
    \n Символ перевода строки (LF)
    \r Символ возврата каретки (CR)
    \s Символ пробела
    \S Все что угодно, кроме пробела
    \t Символ табуляции (HT)
    \v Символ вертикальной табуляции (VT)
    \w Любая латинская буква, цифра или символ подчеркивания
    \W Все, кроме латинских букв, цифр или символа подчеркивания
    \n n - положительное число. Соответствует n-ной запомненной подстроке
    \0n Символ с восьмеричным кодом n
    \xn Символ с шестнадцатеричным кодом n
    \un Символ Unicode с шестнадцатеричным кодом n

    Упражнение 31
    "Скрипт для веб-формы". Пользователь вводит ЧТО-ТО, возможно, используя HTML-таги. Ваша задача вывести на экран то, что ввел пользователь, не учитывая таги. Вторым необязательным аргументом метода split() является число - максимальный размер массива.
  • match(). В скобках указывается регулярное выражение, которое программа будет пытаться найти в строке. В случае, если она найдет такое выражение, то в новый массив запишутся все подстроки с этим выражением.
  • <script>
    s=prompt("Введите фразу с цифрами", "");
    var a=s.match(/\d/);
    alert("Ваша фраза: \"" +s+ "\"\nВстреченные цифры: "+a);
    </script>
    Чтобы программа искала все цифры, а не останавливалась на первой найденной следует добавить символ g

    <script>
    s=prompt("Введите фразу с цифрами", "");
    var a=s.match(/\d/g);
    alert("Ваша фраза: \"" +s+ "\"\nВстреченные цифры: "+a);
    </script>
  • replace(). В скобках указывается регулярное выражение и строка, на которую будут заменяться найденные подстроки, соответствующие регулярному выражению. В следующей программе мы заменим все маленькие буквы "а" на большие - "А":
  • <script>
    s=prompt("Введите предложение", "");
    var a=s.replace("а", "А");
    alert("Ваше предложение: "+s+"\na: "+a);
    </script>
    Мы использовали нерегулярное выражение, и замена маленьких букв остановилась на первой встреченной букве "а". А вот как это сделать регулярным выражением:
    <script>
    s=prompt("Введите предложение", "");
    var a=s.replace(/\u0430/g, "А");
    alert("Ваше предложение: "+s+"\na: "+a);
    </script>
  • search(), Если то, что в скобках есть в строке, возвращается значение номера элемента, где это впервые встретилось. Если нет, то возвращается "-1". Для регулярных выражений опция глобального поиска (/ /g) игнорируется, но, как и всегда, не игнорируется опция / /i, которая позволяет программе не обращать внимания на различия в регистре букв. В следующей программе мы проверим ввел ли пользователь русскую букву "а":
  • <script>
    s=prompt("Введите что-нибудь", "");
    var x=s.search(/\u0430/i);
    if (x!=-1) {alert("Впервые буква \"а\" встречается в вашей фразе на месте №"+x)}
    else {alert("В вашей фразе нет буквы \"а\"")};
    </script>
  • charCodeAt(). Если в скобках указать число, то JScript выведет код Unicode стоящего там символа:
  • <script>
    s=prompt("Введите слово", "");
    x=prompt("И число", "");
    alert("На " +x+ "-м месте в вашем слове стоит символ, чей код равен " +s.charCodeAt(x));
    </script>
    Данный метод можно присваивать и какой-либо переменной.
  • fromCharCode(). В скобках, через запятую следует перечислить коды символов, и будет создана новая строка из таких символов. Обязательно просмотрите код:
  • <script>
    s=String.fromCharCode(169, 174, 8482, 9792, 9794);
    document.write("<tt><big>Известны следующие символы, связанные с защитой прав: "+s+"</tt></big>");
    </script>
  • toLowerCase(). Делает все буквы строки маленькими:
  • <script>
    s=prompt("Введите слово", "");
    alert("не церемонься! вводи маленькими буквами: " +s.toLowerCase());
    </script>
    Данный метод можно присваивать и какой-либо переменной.
  • toUpperCase(). Делает все буквы заглавными:
  • <script>
    s=prompt("Введите слово", "");
    alert("Что означает это твое " +s.toUpperCase());
    </script>
    Остается только напомнить, что строки можно складывать (оператор +) и вычитать (оператор −). Упражнение 32< Подсчитать сколько букв "а" (включая и латинские, и русские, и большие, и маленькие) в введенном пользователем слове. Еще несколько методов доступны только при применении document.write():

    Метод

    Аналог

    Результат

    anchor("имя") <a name="имя"> Какой-то текст document.write("Какой-то текст".anchor("имя"))
    link("URL") <a href="URL"> Какой-то текст document.write("Какой-то текст".link("#имя"))
    big() <big> Какой-то текст document.write("Какой-то текст".big())
    small() <small> Какой-то текст document.write("Какой-то текст".small())
    sup() <sup> Какой-то текст document.write("Какой-то текст".sup())
    sub() <sub> Какой-то текст document.write("Какой-то текст".sub())
    fixed() <tt> Какой-то текст document.write("Какой-то текст".fixed())
    bold() <b> Какой-то текст document.write("Какой-то текст".bold())
    italics() <i> Какой-то текст document.write("Какой-то текст".italics())
    strike() <s> Какой-то текст document.write("Какой-то текст".strike())
    blink() <blink> Какой-то текст document.write("Какой-то текст".blink())
    fontcolor(цвет) <font color=цвет> Какой-то текст document.write("Какой-то текст".fontcolor("#330099"))
    fontsize(размер) <font size=размер> Какой-то текстdocument.write("Какой-то текст".fontsize(5))

    [В начало]
    Hosted by uCoz