Сегодня поговорим о строках в языке программирования JavaScript. А именно рассмотрим, как в JS заменить символ в строке или как происходит замена подстроки в строке и др.
В JavaScript любая текстовая информация уже является строкой, поэтому в этом языке нет специальных символов, обозначающих тип данных «строки», как есть в других языках. Например, строка создается любыми типами кавычек: одинарными, двойными или обратными.
Одинарные и двойные кавычки появились в JavaScript давно, поэтому работают очень традиционно, например, они должны располагаться в одной строке кода и не могут переноситься на несколько строк. Обратные кавычки в этом плане очень гибкие: используя их, можно строковый тип данных разместить сразу в нескольких строках кода, и это не будет считаться ошибкой. А в двойных и одинарных кавычках для этого нужно применять специальный символ «\n».
Строки JS: заменить символ, замена подстроки, поиск символа, доступ к символам
Строки кажутся довольно простыми типами данных, но при этом над ними можно совершать множество действий при помощи JavaScript.
Длина строки
Длина строки в JS определяется свойством «length», например:
alert (`Строка\n`.length);
Результат будет 7 символов. Почему 7,— спросите вы, — ведь в слове «строка» всего 6 символов. 7, потому что специальный символ «\n» тоже считается.
Нужно обратить внимание, что «str.length» — это свойство, а не функция, поэтому нет необходимости добавлять к нему круглые скобки «()», с ними это свойство работать не будет.
Доступ к символам строки JS
Определить, какой символ занимает конкретную позицию в строке, можно двумя способами: применив квадратные скобки [pos] или метод str.charAt(pos). Например:
let str = `Привет`;
//давайте получим второй символ
alert (str[1]); //результат будет «р»
alert (str.chartAt(1)); //результат будет «р»
Нужно помнить, что в строке всегда первый символ соответствует нулевой позиции! Если хотите использовать современный способ определения символа в строке, то лучше использовать квадратные скобки, метод «charAt» уже считается устаревшим.
Неизменяемость строк
Строки в JavaScript создаются раз и навсегда. Нет никакой возможности взять какой-либо символ из строки и поменять его на другой. Что бы вы ни делали, результатом будет ошибка. Но выход из ситуации есть, если это все-таки нужно как-то сделать. Необходимо создать новую строчку с измененным символом и присвоить ее той же самой переменной, заменив всю старую строку на новую.
Например:
let str = 'привет';
str = 'П' + str[1]; // меняем строчку на новую
alert( str ); // результатом будет «Привет» с большой буквы
Меняем регистр
Бывают случаи, когда в строке нужно поменять регистр всей строки или какого-то отдельного символа. В этом случае нам на помощь придут два метода:
toLowerCase() — для смены символов в нижний регистр;
toUpperCase(0 — для смены символов в верхний регистр.
Например:
alert( 'Привет'.toUpperCase() ); // результат будет «ПРИВЕТ»
alert( 'Привет'.toLowerCase() ); // результат будет «привет»
alert( 'Привет'[5].toUpperCase() ); // результат будет «ПривеТ», такой подход применяется, когда нужно сменить регистр конкретного символа.
JavaScript-поиск подстроки в строке
Для осуществления поиска подстроки в строке при помощи JavaScript существует множество различных способов. Рассмотрим несколько самых распространенных:
str.indexOf(substr, pos). Данный метод будет искать подстроку «substr» в строчке «str», причем начнет поиск с указанной позиции «pos». Такой поиск чувствителен к регистру. Этот метод будет искать с начала строки и до первого вхождения в строке. Если вам нужно найти все вхождения, тогда этот метод нужно поместить в цикл.
str.lastIndexOf(substr, position). Этот метод полностью похож на первый, но только поиск начинает с конца строки. Его удобно применять, например, когда нужно найти последнее вхождение в строке.
str.includes(substr, pos). Этот метод в качестве своего значения вернет «true», если в строке будет искомая подстрока, и «false», если подстроки не будет.
Как получить подстроку
У JavaScript есть 3 способа, чтобы получить подстроку из строки:
str.slice(start [, end]). Данный метод вернет часть строки, заключенную между «start» и «end», при этом «end» в подстроку не включается.
str.substring(start [, end]). Этот метод работает так же, как и первый, с той лишь разницей, что он не поддерживает отрицательные значения подстроки.
str.substr(start [, length]). Этот метод вернет подстроку от «start», длиною, указанной в «length». Этим он и отличается от первых двух методов — ему не нужно указывать конец подстроки, а только начало и ее длину.
Заключение
Сегодня мы рассмотрели простые операции над строками. Теперь вы знаете, что в JS просто заменить символ в строке на необходимый не получится. Замена символа в строке JS делается путем создания новой строчки и присвоения ее старой переменной, заменяя полностью всю строку. А с поиском символов или подстрок в строке JS проблем не должно возникнуть.
JavaScript