• JavaScript: Строки

    JavaScriptКомментариев нет

    Методы и свойства

    Ниже будут перечислены некоторые методы и свойства строк в javascript. Заранее договоримся что у нас объявлена переменная str и для нее или у нее будем вызывать методы/свойства.

    // объявляем строку
    var str = "Очень красивый текст";

    str.length — возвращает количество символов в строке.

    str.charAt(0) — вернет символ из строки по номеру. Эту функции можно заменить обычными скобками [], выбирая букву как в массиве. Пример:

    // вернем символ
    str.charAt(1) // ч
    str[1] // ч

    str.toUpperCase() — возвращает копию строки в которой все буквы заглавные.

    str.toLowerCase() — возвращает копию строки в которой все буквы строчные.

    str.indexOf(search, pos) — возвращает первую позицию вхождения подстроки search в строку str. Второй параметр pos — не обязателен, он нужен для смещения поиска не сначала строки а с определенного символа(по порядковому номеру начиная с 0). Если если в результате поиска было найдено совпадение то вернется порядковый номер вхождения в строке, в противном случае -1. Пример с учетом -1:

    // поиск в строке
    var str = "Widget";
    
    if (~str.indexOf("get")) { // символ ~ - при -1 возвращает false, в остальных случаях true
      alert( 'совпадение есть!' );
    }

    str.substring(start, end) — возвращает подстроку с позиции start до, но не включая end. Если аргумент end отсутствует, то идет до конца строки. Не очень логично работает с отрицательными значениями.

    str.substr(start, length) — возвращает подстроку с позиции start, количеством символов указанных в  length. Если аргумент length отсутствует, то идет до конца строки.

    str.slice(start, end) — возвращает подстроку с позиции start до, но не включая end. Если аргумент end отсутствует, то идет до конца строки. Работает более логично чем substring(start, end) с отрицательными числами.

     

    Нюансы при работе с строками в javascript

    При сравнение символов, строчные буквы будут больше заглавных, а некоторые символы вообще сравниваются не логично. Это вызвано тем что все символы в js приводятся к единому «Юникод» виду, в котором символы(буквы) разбросаны не совсем логично. Сравнение строки идет по юникод коду. Пример нелогичных сравнений:

    // не логичное сравнение строк
    alert( 'ё' > 'я' ); // true
    alert( 'а' > 'Я' ); // true

    Для правильного сравнения существует целый стандарт ECMA 402. Это не такое простое дело, много языков и много правил. Он поддерживается во всех современных браузерах, кроме IE10-, в которых нужна библиотека https://github.com/andyearnshaw/Intl.js/. Такое сравнение работает через вызов str.localeCompare(str2)

     

    Спецсимволы

    \b — перемещает позицию печати на один символ назад. На принтерах может использоваться для наложения одного символа на другой, например a BS ^ = â. При вводе с терминала иногда используется для стирания предшествующего символа («забой»).
    \f — выбрасывает текущую страницу и начинает печать со следующей. На терминалах этот символ обычно эквивалентен переводу строки (хотя в принципе можно было бы его использовать для очистки экрана).
    \n — перемещает позицию печати на одну строку вниз (исходно — без возврата каретки)
    \r — перемещает позицию печати в крайнее левое положение
    \t — перемещает позицию печати к следующей позиции горизонтальной табуляции.
    \uNNNN — Символ в кодировке Юникод с шестнадцатеричным кодом `NNNN`. Например, `\u00A9` — юникодное представление символа копирайт ©

     

    Трюки

    Поиск всех вхождений

    // поиск всех вхождений
    var str = "Ослик Иа-Иа посмотрел на виадук"; // ищем в этой строке
    var target = "Иа"; // цель поиска
    
    var pos = -1;
    while ((pos = str.indexOf(target, pos + 1)) != -1) {
      alert( pos );
    }

     

    Источник: https://learn.javascript.ru/string


    Будь первым кто прокомментирует статью.

    Добавить комментарий

    Войти с помощью: