Регулярное выражение, чтобы сделать первую букву каждого слова заглавной, включая специальные символы - PullRequest
1 голос
/ 15 апреля 2020

Я работаю над приложением на португальском языке, поэтому мое регулярное выражение должно содержать следующие символы (ага), пока у меня есть /(\b[a-z])/g, но оно обрабатывает эти специальные символы как начало нового слова. Я делаю это в Javascript

Пример:

Вход: rua são luiz
Токовый выход: Rua SãO Luiz
Требуемый выход: Rua São Luiz

1 Ответ

1 голос
/ 15 апреля 2020

Проблема с этим регулярным выражением - \b. Он определяется ссылкой на символы слова (\w), которые не включают символы с ударением. Таким образом, ã в вашем примере - это граница слова. Вы можете прочитать больше о классах символов и утверждениях здесь: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions

Могу ли я предложить другой подход без регулярных выражений?

'rua são luiz'
    .split(' ')
    .map(word => word.charAt(0).toUpperCase() + word.slice(1))
    .join(' ')

Это только мое личное мнение : Регулярные выражения могут быстро стать очень трудными для понимания и отладки. Иногда более подробный код может быть более приемлемым решением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...