Комментарии (1)
Ответ сгенерирован нейросетью и может содержать ошибки
Основные методы строк в JavaScript
В JavaScript строки являются примитивными типами данных, но язык предоставляет для них обширный набор методов через объект-обертку String. Вот наиболее важные и часто используемые методы, сгруппированные по категориям.
1. Методы поиска и проверки
includes(searchString, position) - проверяет, содержится ли подстрока в строке:
const text = "Hello World";
console.log(text.includes("World")); // true
console.log(text.includes("world")); // false (регистрозависимый)
console.log(text.includes("Hello", 1)); // false (поиск с позиции 1)
indexOf(searchValue, fromIndex) и lastIndexOf(searchValue, fromIndex) - возвращают индекс первого/последнего вхождения:
const str = "JavaScript is awesome and JavaScript is powerful";
console.log(str.indexOf("JavaScript")); // 0
console.log(str.lastIndexOf("JavaScript")); // 23
console.log(str.indexOf("Python")); // -1 (не найдено)
startsWith(searchString, position) и endsWith(searchString, length) - проверяют начало и конец строки:
const filename = "document.pdf";
console.log(filename.startsWith("doc")); // true
console.log(filename.endsWith(".pdf")); // true
console.log(filename.endsWith(".txt")); // false
match(regexp) - ищет совпадения с регулярным выражением:
const text = "Цена: 100$, 200$, 300$";
const prices = text.match(/\d+\$/g);
console.log(prices); // ["100$", "200$", "300$"]
2. Методы извлечения подстрок
slice(startIndex, endIndex) - извлекает часть строки (отрицательные индексы отсчитываются с конца):
const str = "JavaScript";
console.log(str.slice(0, 4)); // "Java"
console.log(str.slice(4)); // "Script"
console.log(str.slice(-6)); // "Script"
console.log(str.slice(2, -2)); // "vaScri"
substring(startIndex, endIndex) - аналогичен slice, но не принимает отрицательные индексы:
const str = "JavaScript";
console.log(str.substring(4, 10)); // "Script"
console.log(str.substring(10, 4)); // "Script" (меняет местами если start > end)
substr(startIndex, length) - устаревший метод, используйте slice или substring.
3. Методы преобразования регистра
toLowerCase() и toUpperCase() - преобразуют регистр:
const mixed = "JavaScript ПроГрАмМиРоВаНиЕ";
console.log(mixed.toLowerCase()); // "javascript программирование"
console.log(mixed.toUpperCase()); // "JAVASCRIPT ПРОГРАММИРОВАНИЕ"
toLocaleLowerCase() и toLocaleUpperCase() - учитывают локаль:
console.log("İstanbul".toLocaleLowerCase("tr-TR")); // "istanbul" (корректно для турецкого)
4. Методы замены и разделения
replace(searchValue, newValue) и replaceAll(searchValue, newValue):
const text = "Яблоко, банан, яблоко, апельсин";
console.log(text.replace("яблоко", "груша")); // "Яблоко, банан, груша, апельсин"
console.log(text.replaceAll(/яблоко/gi, "груша")); // "груша, банан, груша, апельсин"
split(separator, limit) - разбивает строку на массив:
const csv = "яблоко,банан,апельсин";
console.log(csv.split(",")); // ["яблоко", "банан", "апельсин"]
console.log("hello".split("")); // ["h", "e", "l", "l", "o"]
console.log("a,b,c".split(",", 2)); // ["a", "b"] (ограничение количества элементов)
5. Методы обрезки и заполнения
trim(), trimStart(), trimEnd() - удаляют пробельные символы:
const padded = " Hello World ";
console.log(padded.trim()); // "Hello World"
console.log(padded.trimStart()); // "Hello World "
console.log(padded.trimEnd()); // " Hello World"
padStart(targetLength, padString) и padEnd(targetLength, padString):
const number = "5";
console.log(number.padStart(3, "0")); // "005"
console.log("Hi".padEnd(5, "!")); // "Hi!!!"
6. Методы проверки и анализа
charAt(index) и charCodeAt(index):
const str = "Hello";
console.log(str.charAt(1)); // "e"
console.log(str.charCodeAt(1)); // 101 (код символа 'e')
console.log(str[1]); // "e" (альтернатива через индекс)
codePointAt(pos) - для работы с Unicode символами (суррогатные пары):
const emoji = "😀";
console.log(emoji.codePointAt(0)); // 128512
7. Современные ES6+ методы
repeat(count) - повторяет строку:
console.log("Ha".repeat(3)); // "HaHaHa"
startsWith(), endsWith(), includes() - уже рассмотрены выше.
normalize(form) - нормализация Unicode:
const acute1 = "café";
const acute2 = "cafe\u0301";
console.log(acute1 === acute2); // false
console.log(acute1.normalize() === acute2.normalize()); // true
Практический пример использования
// Практический пример: обработка пользовательского ввода
function processUsername(input) {
// Обрезаем пробелы и приводим к нижнему регистру
const cleaned = input.trim().toLowerCase();
// Заменяем пробелы на подчеркивания
const withUnderscores = cleaned.replace(/\s+/g, "_");
// Удаляем все спецсимволы, оставляем только буквы, цифры и _
const alphanumeric = withUnderscores.replace(/[^\w]/g, "");
// Ограничиваем длину и добавляем префикс
const final = alphanumeric.slice(0, 20).padStart(1, "user_");
return final;
}
console.log(processUsername(" John Doe 123! ")); // "user_john_doe_123"
Важные особенности
- Неизменяемость: Строки в JavaScript иммутабельны - методы возвращают новые строки, не изменяя оригинал.
- Регистрозависимость: Большинство методов чувствительны к регистру.
- UTF-16: JavaScript использует кодировку UTF-16, что важно для работы с эмодзи и символами вне плоскости BMP.
- Приведение типов: При вызове метода у примитива JavaScript автоматически создает объект-обертку.
Эти методы составляют основу работы со строками в JavaScript и регулярно используются в реальных проектах для валидации, парсинга, форматирования и обработки текстовых данных.