Строки в JavaScript представляют собой последовательность символов, заключенную в одинарные ('
), двойные ("
) или обратные (```) кавычки. Строковые литералы могут содержать любые символы Unicode, включая специальные символы, такие как переводы строки, табуляции и пробелы.
Основные свойства и методы строк
Свойства
- length: Возвращает длину строки.
Методы
- charAt(index): Возвращает символ по указанному индексу.
- indexOf(substring[, startIndex]): Возвращает индекс первого вхождения подстроки в строке. Поиск начинается с указанного индекса (по умолчанию 0).
- lastIndexOf(substring[, startIndex]): Возвращает индекс последнего вхождения подстроки в строке. Поиск идет назад от конца строки.
- slice(startIndex[, endIndex]): Возвращает новую строку, содержащую символы строки, начиная с
startIndex
и заканчивая (не включая)endIndex
. - substring(startIndex[, endIndex]): Похоже на
slice
, но игнорирует отрицательные индексы. - substr(startIndex[, length]): Возвращает подстроку, начинающуюся с
startIndex
длинойlength
символов. - replace(searchValue, replaceValue): Заменяет первое вхождение
searchValue
наreplaceValue
. - split(separator[, limit]): Разбивает строку на массив подстрок, используя указанный разделитель.
- toLowerCase(): Преобразует строку к нижнему регистру.
- toUpperCase(): Преобразует строку к верхнему регистру.
- trim(): Удаляет пробельные символы в начале и конце строки.
- includes(searchString[, position]): Проверяет, содержит ли строка указанную подстроку, начиная с указанной позиции.
- startsWith(searchString[, position]): Проверяет, начинается ли строка с указанной подстроки, начиная с указанной позиции.
- endsWith(searchString[, length]): Проверяет, заканчивается ли строка указанной подстрокой, проверяя последние
length
символов.
Примеры использования
let str = "Привет, мир!"; // Длина строки console.log(str.length); // 13 // Символ по индексу console.log(str.charAt(0)); // П // Индекс первого вхождения подстроки console.log(str.indexOf("мир")); // 8 // Извлечение подстроки console.log(str.slice(0, 7)); // Привет, // Замена подстроки console.log(str.replace("мир", "вселенная")); // Привет, вселенная! // Разбиение строки на массив console.log(str.split(",")); // ["Привет", " мир!"] // Преобразование регистра console.log(str.toLowerCase()); // привет, мир! console.log(str.toUpperCase()); // ПРИВЕТ, МИР! // Удаление пробелов console.log(str.trim()); // Привет, мир! // Проверка наличия подстроки console.log(str.includes("Привет")); // true console.log(str.startsWith("Привет")); // true console.log(str.endsWith("!")); // true
Шаблонные строки
Начиная с ES6, в JavaScript появились шаблонные строки, которые используют обратные кавычки (```) и поддерживают интерполяцию выражений и многострочные строки.
let name = "Иван"; let age = 30; // Интерполяция выражений let greeting = `Привет, ${name}! Тебе ${age} лет.`; console.log(greeting); // Привет, Иван! Тебе 30 лет. // Многострочная строка let multiline = ` Это многострочная строка. `; console.log(multiline); /* Это многострочная строка. */
Работа с Unicode
JavaScript использует UTF-16 для внутреннего представления строк, что означает, что некоторые символы могут занимать более одного байта. Для работы с отдельными символами Unicode можно использовать метод codePointAt
и конструктор String.fromCodePoint
.
let smileyFace = "\u{D83D}\u{DE03}"; console.log(smileyFace); // 😃 let codePoint = smileyFace.codePointAt(0); console.log(codePoint); // 128515 let reconstructedSmiley = String.fromCodePoint(codePoint); console.log(reconstructedSmiley); // 😃
Регулярные выражения
Регулярные выражения позволяют производить мощные манипуляции со строками, такие как поиск, замена и извлечение подстрок.
let text = "The quick brown fox jumps over the lazy dog."; let pattern = /\b\w+/g; // Найдем все слова let words = text.match(pattern); console.log(words); // ["The", "quick", "brown", "fox", "jumps", "over", "the", "lazy", "dog"]
Итоги
Строки в JavaScript обладают богатым набором методов и свойств, позволяющих эффективно манипулировать текстовой информацией. Использование регулярных выражений и новых возможностей, таких как шаблонные строки, делает работу со строками еще более удобной и мощной.