"Капитализация каждого слова в строке на JavaScript"

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

Для того чтобы сделать первую букву каждого слова в строке заглавной, примените выражение .replace(/\b\w/g, c => c.toUpperCase()):

JS
Скопировать код
let city = "сан франциско";
let capitalized = city.replace(/\b\w/g, c => c.toUpperCase());
// "Сан Франциско"
Кинга Идем в IT: пошаговый план для смены профессии

Разбор быстрого ответа

Начальное преобразование для согласованности

Прежде, чем превращать буквы в заглавные, важно привести всю строку к одному, нижнему регистру:

JS
Скопировать код
let city = "сАН ФРАНциско";
let capitalized = city.toLowerCase().replace(/\b\w/g, c => c.toUpperCase());
// "Сан Франциско"

Выразительность синтаксиса ES6

С помощью ES6 возможно использовать стрелочные функции для создания более элегантного и компактного кода:

JS
Скопировать код
const capitalizeWords = str => str.toLowerCase().replace(/\b\w/g, c => c.toUpperCase());

Совмещая методы split(), map() и join()

Можно разделить строку на отдельные слова, поменять первую букву каждого слова на заглавную, а затем объединить их обратно:

JS
Скопировать код
const capitalizeWords = str => str
  .toLowerCase()
  .split(' ')
  .map(word => word.charAt(0).toUpperCase() + word.slice(1))
  .join(' ');

Превосходство над JavaScript

Внедрение CSS

JavaScript может уступить место менеджменту регистра на уровне CSS:

CSS
Скопировать код
.capitalize {
  text-transform: capitalize;
}

Затем это свойства можно динамически применить при помощи JavaScript:

JS
Скопировать код
element.style.textTransform = 'capitalize';

Специфические случаи

Имена с особыми правилами

Некоторые имена и фамилии, такие как "McDonald" или "O'Connell", требуют особого подхода:

JS
Скопировать код
function complexCapitalization(str) {
  return str.toLowerCase().replace(/(^\w|\b\w(?<!['’]\w))/g, c => c.toUpperCase());
}

Разделители, отличные от пробелов

В некоторых названиях, например "New York-Newark", используются нестандартные разделители:

JS
Скопировать код
const capitalizeWords = str => str
  .toLowerCase()
  .replace(/(^\w|\b\w|-\w)/g, c => c.toUpperCase());

Учет лингвистических особенностей

Каждый язык и культура имеют свои правила использования заглавных букв.

Производительность важна

С большими объемами данных или при частом выполнении операций производительность может упасть, поэтому выбирайте подходы разумно!

Визуализация

Если всё ещё неясно, представьте процесс как работу художника, который раскрашивает фасады домов 🏠, делая их уникально привлекательными.

Markdown
Скопировать код
Перед нами: [дом, восходящего, солнца]

Мы, как художники, добавляем яркий акцент:

Markdown
Скопировать код
Потом: [Дом, Восходящего, Солнца]

Мы делаем акцент на первую букву каждого слова:

JS
Скопировать код
city.split(' ').map(word => word.charAt(0).toUpperCase() + word.slice(1)).join(' ');
// Выглядит потрясающе, не так ли?

И вот перед нами замечательный квартал, оживленный заглавными буквами! 🎩🏠🏠🏠🏠🏠

Полезные материалы

  1. String toUpperCase() method in JavaScript – W3Schools — Усилим "громкость" верхнего регистра.
  2. String charAt() method in JavaScript – W3Schools — Узнайте свои символы глубже.
  3. String split() method in JavaScript – W3Schools — Готовы к хирургии текста?
  4. String replace() method in JavaScript – W3Schools — Измените и верните, и никто не заметит.
  5. Строки – Современный учебник JavaScript — Магия над строками в вашем ведении.
  6. How to make the first letter of a string uppercase in JavaScript? – Stack Overflow — Откройте для себя мощь коллективных знаний.
  7. String.prototype.toUpperCase() – JavaScript | MDN — Официальное руководство по использованию ВЕРХНЕГО РЕГИСТРА.