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

Как перевести строчный текст в заглавный?

2.0 Middle🔥 111 комментариев
#JavaScript Core

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

🐱
claude-haiku-4.5PrepBro AI3 апр. 2026 г.(ред.)

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

Преобразование строки в заглавный текст

Это базовая задача строковой манипуляции в JavaScript. Существует несколько способов в зависимости от требований.

1. Базовый способ: toUpperCase()

Преобразует все буквы в заглавные:

const text = 'Hello World';
const uppercase = text.toUpperCase();
console.log(uppercase); // HELLO WORLD

Это просто и быстро, но преобразует ВСЮ строку.

2. Первая буква заглавная: charAt() + slice()

Часто нужно сделать заглавной только первую букву:

const text = 'hello world';
const capitalized = text.charAt(0).toUpperCase() + text.slice(1);
console.log(capitalized); // Hello world

3. Первая буква заглавная: более элегантно

const capitalize = (str) => str[0].toUpperCase() + str.slice(1);

console.log(capitalize('hello')); // Hello
console.log(capitalize('WORLD')); // WORLD

4. Capitalize каждое слово (Title Case)

Частая задача - заглавная первая буква в каждом слове:

const toTitleCase = (str) => {
  return str
    .toLowerCase()
    .split(' ')
    .map(word => word.charAt(0).toUpperCase() + word.slice(1))
    .join(' ');
};

console.log(toTitleCase('hello world from javascript'));
// Hello World From Javascript

5. С использованием регулярных выражений

Для более сложных случаев (пунктуация, спецсимволы):

const toTitleCase = (str) => {
  return str.replace(/\b\w/g, (char) => char.toUpperCase());
};

console.log(toTitleCase('hello-world and some-text'));
// Hello-World And Some-Text

// Или более гибко - только после пробелов
const capitalize = (str) => {
  return str.replace(/(^|\s)\w/g, (match) => match.toUpperCase());
};

6. CSS решение: text-transform

В браузере для визуального отображения можно использовать CSS:

export function Title({ text }) {
  return <h1 className='uppercase'>{text}</h1>;
}
.uppercase {
  text-transform: uppercase; /* HELLO WORLD */
}

.capitalize {
  text-transform: capitalize; /* Hello world */
}

.title-case {
  text-transform: uppercase; /* требует JS для правильного title case */
}

7. React компонент для реиспользования

Если часто нужна эта функция, создай утилиту:

// lib/string.utils.ts
export const capitalize = (str: string): string => {
  return str.charAt(0).toUpperCase() + str.slice(1);
};

export const toUpperCase = (str: string): string => {
  return str.toUpperCase();
};

export const toTitleCase = (str: string): string => {
  return str
    .toLowerCase()
    .split(' ')
    .map(word => capitalize(word))
    .join(' ');
};

// Использование
import { capitalize } from '@/lib/string.utils';

const userName = capitalize(user.name); // john -> John

8. Обработка locale-specific символов

Для языков с диакритическими знаками:

const capitalize = (str: string, locale = 'en-US'): string => {
  return str.charAt(0).toLocaleUpperCase(locale) + str.slice(1);
};

// Тюркский язык имеет спецсимволы для I
console.log(capitalize('istanbul', 'tr-TR')); // Istanbul (правильно для турецкого)

Когда какой способ использовать

  • toUpperCase() - когда нужно ВСЁ в заглавных
  • charAt(0).toUpperCase() + slice(1) - быстрый и понятный способ для первой буквы
  • text-transform в CSS - только для визуального отображения (не меняет данные)
  • Регулярные выражения - для сложных паттернов и обработки пунктуации
  • Утилиты в lib/ - для переиспользования в проекте

Лучшая практика: создай helper функцию в lib/ и переиспользуй её везде, это упростит изменения в будущем.

Как перевести строчный текст в заглавный? | PrepBro