Поиск в строке JavaScript. Работа с подстрокой
В предыдущей статье мы начали тему работы со строками в JavaScript. В этом материале вы узнаете, как выполнять поиск в строке, как работать с подстрокой, как извлекать часть строки и т. д.
Поиск строки в строке в JavaScript
С помощью метода
var str = "Please locate where 'locate' occurs!"; var pos = str.indexOf("locate");
В нашем случае происходит подсчёт позиции с нуля. При этом: 1) 0 — первая позиция в строке, 2) 1 — вторая, 3) 2 — третья...
Идём дальше. Функция
var str = "Please locate where 'locate' occurs!"; var pos = str.lastIndexOf("locate");
Оба этих метода принимают 2-й параметр в виде начальной позиции для поиска:
var str = "Please locate where 'locate' occurs!"; var pos = str.indexOf("locate",15);
Стоит упомянуть и функцию
var str = "Please locate where 'locate' occurs!"; var pos = str.search("locate");
Метод slice () в JavaScript
Функция
К примеру, давайте нарежем часть строки из позиции 7 в положение 13:
var str = "Apple, Banana, Kiwi"; var res = str.slice(7, 13);
В нашем случае результатом будет:
Banana
Если параметр будет иметь отрицательное значение, то позиция будет учитываться с конца строки. Например:
var str = "Apple, Banana, Kiwi"; var res = str.slice(-12, -6);
Результат будет тот же.
Кстати, если 2-й параметр опустить, то метод сделает срез оставшейся части строки:
var res = str.slice(7);
Результатом будет:
Banana, Kiwi
То же самое получим, выполнив срез с конца:
var res = str.slice(-12);
Остаётся лишь добавить, что отрицательные позиции не функционируют в Internet Explorer 8 и других, более ранних версиях.
Метод подстроки в JavaScript
Подстрока в JavaScript аналогична срезу с той разницей, что подстрока не способна принимать отрицательные индексы:
var str = "Apple, Banana, Kiwi"; var res = str.substring(7, 13);
В качестве результата опять получим «Banana».
Если же мы опустим 2-й параметр, то подстрока разрежет оставшуюся часть строки.
Метод substr () в JavaScript
Строковый метод
var str = "Apple, Banana, Kiwi"; var res = str.substr(7, 6);
Результат: Banana.
Мы можем опустить 2-й параметр — тогда строковый метод
var str = "Apple, Banana, Kiwi"; var res = str.substr(7);
Получим: Banana, Kiwi.
Если 1-й параметр будет отрицательным, позиция будет рассчитываться с конца строки.
var str = "Apple, Banana, Kiwi"; var res = str.substr(-4);
Результат: Kiwi.
Меняем содержимое строки в JavaScript
Строковый метод
str = "Please visit Microsoft!"; var n = str.replace("Microsoft", "W3Schools");
Результат: Please visit W3Schools!
Обратите внимание, что метод Replace() не изменит строку, в которой вызывается, а возвратит новую.
В следующем примере функция Replace() меняет лишь первое совпадение:
str = "Please visit Microsoft and Microsoft!"; var n = str.replace("Microsoft", "W3Schools");
Итог: Please visit W3Schools and Microsoft!
Кстати, по умолчанию Replace() учитывает регистр. Написав MICROSOFT, мы увидим, что функция работать не будет: Пример
str = "Please visit Microsoft!"; var n = str.replace("MICROSOFT", "W3Schools");
Но мы можем заменить регистр без его учёта, если воспользуемся регулярным выражением с пометкой " i ":
str = "Please visit Microsoft!"; var n = str.replace(/MICROSOFT/i, "W3Schools");
Результат: Please visit W3Schools!
Здесь стоит заметить, что регулярные выражения надо писать без кавычек.
Если желаете заменить все совпадения, воспользуйтесь регулярным выражением с флагом /g:
str = "Please visit Microsoft and Microsoft!"; var n = str.replace(/Microsoft/g, "W3Schools");
Тут получим следующее: Please visit W3Schools and W3Schools!
Извлекаем строковые символы в JavaScript
Есть 2 безопасных строковых функции для извлечения строковых символов: • charCodeAt (позиция); • charAt (позиция).
Функция charAt() возвратит символ по указанному нами индексу (позиции) в строке:
var str = "HELLO WORLD"; str.charAt(0);
Вывод:
H
Что касается метода charCodeAt(), то он вернёт Юникод символа по указанному нами индексу:
var str = "HELLO WORLD"; str.charCodeAt(0); // вернёт 72
Что ж, на этом всё, удачного вам кодинга!
Интересует профессиональный курс по JavaScript-разработке? Переходите по ссылке ниже: