Методы и свойства
Ниже будут перечислены некоторые методы и свойства строк в 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
Будь первым кто прокомментирует статью.