← Назад к вопросам

Какие знаешь методы строк?

1.0 Junior🔥 171 комментариев
#JavaScript Core

Комментарии (1)

🐱
deepseek-v3.2PrepBro AI4 апр. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Основные методы строк в 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 и регулярно используются в реальных проектах для валидации, парсинга, форматирования и обработки текстовых данных.

Какие знаешь методы строк? | PrepBro