Меню Закрыть

Javascript операции со строками

Содержание

Строковые методы помогут вам для работы со строками.

Строковые методы и свойства

Примитивными значениями, как "Андрей Щипунов" , не может иметь свойства или методы (поскольку они не являются объектами).

Но JavaScript методы и свойства доступны с помощью примитивных значений, потому что JavaScript обрабатывает примитивные значения как объекты для выполнения методов и свойств.

Длина строки

Свойство length возвращает длину строки:

Пример

Найти подстроку в строке

Метод indexOf() возвращает индекс (позицию) в первое вхождение указанного текста в строку:

Пример

Метод lastIndexOf() возвращает индекс последнее вхождение указанного текста в строку:

Пример

Как метод indexof() и lastIndexOf() методы возвращают значение -1 , если текст не найден.

В JavaScript рассчитывает позиции с нуля.
0 это первая позиция в строке, 1-вторая, 2-третья .

Оба метода принимают в качестве второго параметра в качестве начальной позиции для поиска:

Пример

Поиск строки в строке

Метод search() поисковик строки по заданному значению и возвращает позицию совпадения:

Пример

Вы заметили?

Методы indexof() и search() , равны?

Они принимают те же аргументы (параметры) и возвращает то же значение?

Два метода вполне равны. Различия в:

  • Метод search() не может принимать второй аргумент начальной позиции.
  • Метод search() может принимать гораздо более мощные значения поиска (регулярные выражения).

Дополнительные сведения о регулярных выражениях см. в следующей главе.

Извлечение части строки

Существует 3 метода извлечения части строки:

  • slice (старт, конец)
  • substring (старт, конец)
  • substr (начало, длина)

Метод slice

slice извлекает часть строки и возвращает извлеченную часть в новую строку.

Метод принимает 2 параметра: начальный индекс (позиция) и конечный индекс (позиция).

В этом примере slice часть строки из позиции 7 в позицию 13 :

Пример

Результатом будет res:

Если параметр отрицательный, позиция отсчитывается от конца строки.

В этом примере slices часть строки от -12 до позиции -6 :

Пример

Результатом будет res:

Если вы опускаете второй параметр, то метод slice будет вырезать часть строки:

Пример

или, начиная с конца:

Пример

Негативные позиции не работают в Internet Explorer 8 и более ранних версиях.

Метод substring

substring аналогичен slice() .

Разница в том, что substring не может принимать отрицательные индексы.

Пример

Результат будет res:

Если опустить второй параметр, substring будет срезать остальную часть строки.

Метод substr()

Метод substr() аналогичен slice() .

Разница в том, что второй параметр задает длину извлекаемой части.

Пример

Результатом будет res:

Если первым параметром является отрицательной позицией, отсчитывается от конца строки.

Второй параметр не может быть отрицательным, так как определяет длину.

Если вы опускаете второй параметр, функцию substr() будет вырезать часть строки.

Замена строкового содержимого

Метод replace() заменяет указанное значение другим значением в строке:

Пример

Метод replace() не изменяет строку, на которую он вызывается. Возвращает новую строку.

По умолчанию replace() функция заменяет только первая пара:

Пример

Чтобы заменить все совпадения, используйте регулярное выражение с /g флаг (глобальная пара):

Пример

По умолчанию функция replace() учитывает регистр. Писать MICROSOFT (с верхним регистром) не получится:

Пример

На замену без учета регистра, используйте регулярное выражение с /i флаг (нечувствительный):

Пример

Вы узнаете больше о регулярных выражениях в главе Регулярные выражения JavaScript.

Преобразование в верхний и нижний регистры

Преобразование строки в верхний регистр с toUpperCase() :

Читайте также:  Как в витрину скриншотов вставить свою картинку

Пример

Строка преобразуется в нижнем регистре с toLowerCase() :

Пример

Метод concat()

Метод concat() соединяет две или более строки:

Пример

Метод concat() может использоваться вместо оператора plus . Две строки делают то же самое:

Пример

Все строковые методы возвращают новую строку. Они не изменяют исходную строку.
Формально сказано: Строки неизменны: Строки не могут быть изменены, только заменить.

Извлечение строковых символов

Есть 2 безопасных метода извлечения строковых символов:

  • charAt (позиция)
  • charCodeAt (позиция)

Метод charAt

Метод charAt возвращает символ по заданному индексу (позиции) в строке:

Пример

Метод charCodeAt

Метод charCodeAt возвращает юникод символа по указанному индексу в строке:

Пример

var str = "ПРИВЕТ МИР";

str.charCodeAt(0); // Возвращает 1055

Доступ к строке как к массиву небезопасен

Возможно, вы видели такой код, получая доступ к строке как к массиву:

var str = "ПРИВЕТ МИР";

str[0]; // Возвращает П

Есть небезопасный и непредсказуемый:

  • Это не работает во всех браузерах (в IE5, IE6, IE7)
  • Это делает строки выглядеть массивами (но они не)
  • str[0] = "П" не выдает ошибку (но не работает)

Если вы хотите прочитать строку как массив, сначала преобразуйте ее в массив.

Преобразование строки в массив

Строку можно преобразовать в массив с методом split() :

Пример

Если разделитель не задан, возвращаемый массив будет содержать всю строку в индекс [0] .

Если сепаратор ("") , возвращенный массив будет массивом одиночных символов:

Пример

Полный справочник строк

Для подробной информации перейдите на наш Справочник строк JavaScript.

Ссылка содержит описание и примеры всех строковых свойств и методов.

Когда пишешь JavaScript, очень часто приходится лазить по интернету в поисках информации о синтаксисе и параметрах для методов, работающих со строками.

Я прочитал множество статей по работе со строками. В данном посте будет показаны примеры и краткие описания наиболее распространенных методов по работе со строками. Я попытался поставить самые частые методы в верхней части для быстрого ознакомления.

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

Конвертирование в String

Вы можете конвертировать число, булево выражение или объект в строку:

Вы можете сделать это так же с помощью String():

Если вы не уверены, что значение не является null или undefined, вы можете использовать String(), которая всегда возвращает строку, независимо от типа значения.

Разделение строки в подстроки

Чтобы разделить строки в массив подстрок, вы можете использовать метод split():

Как видно в последней строке, второй параметр функции — это лимит количества элементов, которое будет в итоговом массиве.

Получение длины строки

Чтобы найти, сколько символов в строки, мы используем свойство length:

Поиск подстроки в строке

Есть два метода для поиска подстроки:

Использование indexOf():

indexOf() метод начинает поиск подстроки с начала строки, и возвращает позицию начала первого вхождения подстроки. В данном случае — 7 позиция.

Использование lastIndexOf():

Метод возвращает начальную позицию последнего вхождения подстроки в строку.

В обоих методах, если подстрока не найдена, возвращается значение -1, и оба принимают необязательный второй аргумент, указывающий положение в строке, где вы хотите начать поиск. Таким образом, если второй аргумент «5», indexOf() начинает поиск с 5 символа, игнорируя символы 0-4, в то время как lastIndexOf() начинает поиск с символа 5 и идет в обратном направлении, игнорируя символы 6 и дальше.

Читайте также:  Realtek rtl8139 810x family fast ethernet nic

Замена подстроки

Чтобы заменить вхождение подстроки в строке на другую подстроку, вы можете использовать replace():

Первый аргумент — то, что вы хотите заменить и второй аргумент — новая строка. Функция заменяет только первое вхождение подстроки в строку.

Чтобы заменить все вхождения, нужно использовать регулярное выражение с глобальным флагом:

Второй аргумент может включать специальный шаблон или функцию. Подробней можно почитать здесь.

Получить символ по заданной позиции в строке

Получить символ мы можем с помощью функции charAt():

Как часто бывает в JavaScript, первая позиция в строке начинается с 0, а не с 1.

В качестве альтернативной функции можно использовать charCodeAt() функцию, которая код символа.

Заметьте, что код для символа «F» (11 позиция) другой, нежели у символа «f» (позиция 7).

Соединение строк

В большинстве случаем, чтобы соединить строки, можно использовать оператор «+». Но так же можно использовать метод concat():

Таким способом мы можем соединить множество строк в одну в том порядке, в котором они записаны:

Извлечение подстроки

Есть 3 способа получения строки из части другой строки:

Используя slice():

Используя substring():

В обеих функция первый параметр — символ, с которого начинает подстрока (начиная с 0 позиции) и второй аргумент (необязательный) — позиция символа, до которого возвращается подстрока. В примере (5, 10) возвращается строка между позицией 5 и 9.

Используя substr():

Перевод строки в верхний или нижний регистр.

Другие 2 переводят строку в нижний регистр:

Лучше использовать «locale» методы, т.к. в разных местах, например, в Турции отображение регистров работает не совсем так, как мы привыкли и поэтому результат может быть тот, который мы хотели. Если использовать «locale» методы, то таких проблем не будет.

Pattern Matching

Соответствие по шаблону в строке может быть использовано с помощью 2-х методов, которые работают по-разному.

Метод match() применяется к строке и он принимает в качестве параметра регулярное выражение:

Метод exec() применяется к объекту регулярного выражения и принимает в качестве параметра строку:

В обоих методах возвращается лишь первое совпадение. Если совпадений не было — возвращается null.

Так же можно использовать метод search(), который принимает регулярное выражение и возвращает позицию первого совпадения по шаблону:

Если совпадений не было — возращается «-1«.

Сравнение двух строк для сортировки

Вы можете сравнить 2 строки, чтобы определить, какая их них идет первая по алфавиту. Для этого воспользуемся методом localeCompare(), который возвращает 3 возможных значения:

Как было показано выше, отрицательное число возвращается, если строковый аргумент идет после исходной строки. Положительное число, если строковый аргумент идет раньше исходной строки. Если вернулся — значит строки равны.

Для проверки возвращаемого значения лучше использовать if ( result Автор статьи: Alex. Категория: JavaScript
Дата публикации: 19.03.2013

Строки и объект String

Для создания строк мы можем как напрямую присваивать переменной строку:

Для работы со строками предназначен объект String , поэтому также можно использовать конструктор String:

Читайте также:  Msi p35 platinum ms 7345

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

Объект String имеет большой набор свойств и методов, с помощью которых мы можем манипулировать строками.

Свойство length указывает на длину строки:

Метод repeat() позволяет создать строку путем многократного повторения другой строки. Количество повторов передается в качестве аргумента:

Шаблоны строк

Шаблоны строк позволяют вставлять в строку различные значения. Для этого строки заключаются в косые кавычки:

Для вставки значения в строку оно заключается в фигурные скобки, перед которыми ставится знак доллара.

Также вместо скалярных значений могут добавляться свойства сложных объектов или результаты выражений:

Поиск в строке

Для поиска в строки некоторой подстроки используются методы indexOf() (индекс первого вхождения подстроки) и lastIndexOf() (индекс последнего вхождения подстроки). Эти методы принимают два параметра:

Подстроку, которую надо найти

Необязательный параметр, который указывает, с какого символа следует проводить поиск подстроки в строке

Оба этих метода возвращают индекс символа, с которого в строке начинается подстрока. Если подстрока не найдена, то возвращается число -1.

Еще один метод — includes() возвращает true, если строка содержит определенную подстроку.

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

Выбор подстроки

Для того, чтобы вырезать из строки подстроку, применяются методы substr() и substring() .

Метод substring() принимает два параметра:

индекс символа в строке, начиная с которого надо проводить обрезку строки

индекс, до которого надо обрезать строку

Метод substr() также в качестве первого параметра принимает начальный индекс подстроки, а в качестве второго — длину вырезаемой подстроки:

Если второй параметр не указывается, то обрезается вся остальная часть строки:

Управление регистром

Для изменения регистра имеются методы toLowerCase() (для перевода в нижний регистр) и toUpperCase() (для перевода в верхний регистр).

Получение символа по индексу

Чтобы получить определенный символ в строке по индексу, можно применять методы charAt() и charCodeAt() . Оба этих метода в качестве параметра принимают индекс символа:

Но если в качестве результата метод charAt() возвращает сам символ, то метод charCodeAt() возвращает числовой код этого символа.

Удаление пробелов

Для удаления начальных и концевых пробелов в стоке используется метод trim() :

Объединение строк

Метод concat() объединяет две строки:

Замена подстроки

Метод replace() заменяет первое вхождение одной подстроки на другую:

Первый параметр метода указывает, какую подстроку надо заменить, а второй параметр — на какую подстроку надо заменить.

Разделение строки

Метод split() разбивает строку на массив подстрок по определенному разделителю. В качестве разделителя используется строка, которая передается в метод:

Проверка начала и окончания строки

Метод startsWith() возвращает true, если строка начинается с определенной подстроки. А метод endsWith() возвращает true, если строка оканчивается на определенную подстроку.

При этом играет роль регистр символов, и из примера выше мы видим, что "let" не эквивалентно "Let".

Дополнительный второй параметр позволяет указать индекс (для startsWith — индекс с начала, а для endsWith — индекс с конца строки), относительно которого будет производиться сравнение:

Рекомендуем к прочтению

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

Ваш адрес email не будет опубликован.