Как сделать первую букву заглавной, а остальную часть строки строчной
Я пытаюсь писать с заглавной буквы только первое слово в предложении.
Это данные в tsx-файле {this.text ({id:, downloadPriceHistory
defaultMessage: 'Download Price History'})}. Показанный выше идентификатор берется из базы данных, откуда он может быть отправлен в api в различных формах.
Я попытался использовать эту логику ниже:
export function titleCase(string) {
string = 'hello World';
const sentence = string.toLowerCase().split('');
for (let i = 0; i < sentence.length; i++) {
sentence[i] = sentence[i][0].toUpperCase() + sentence[i];
}
return sentence;
}
Например, для ввода "Download Price History"
результат должен быть "Download price history"
.
Ответы
Вам нужно только сделать первую букву заглавной и присоединить ее к остальной части строки, преобразованной в нижний регистр.
function titleCase(string){
return string[0].toUpperCase() + string.slice(1).toLowerCase();
}
console.log(titleCase('Download Price History'));
Этого также можно достичь с помощью CSS, установив text-transform
значение lowercase
для всего элемента и используя ::first-letter
псевдоэлемент, чтобы установить text-transform
значение uppercase
.
.capitalize-first {
text-transform: lowercase;
}
.capitalize-first::first-letter {
text-transform: uppercase;
}
<p class="capitalize-first">Download Price History</p>
попробуйте - сделайте остальную часть строки также строчными.
export function titleCase(string) {
return string[0].toUpperCase() + string.substr(1).toLowerCase()
}
Почему бы просто не прописать всю строку в нижнем регистре, а в верхнем регистре - только первую букву новой строки?
function titleCase(string) {
let sentence = string.toLowerCase();
let titleCaseSentence = sentence.charAt(0).toUpperCase() + sentence.substring(1, sentence.length);
return titleCaseSentence;
}
(Кроме того, вы стираете свой параметр функции с этой первой строкой)
string = 'hello World';
Я предлагаю вам взять первый элемент строки и ввести его в верхнем регистре, а затем получить оставшуюся строку и применить функцию нижнего регистра.
titleCase(string) {
return string.charAt(0).toUpperCase() + string.slice(1).toLowerCase();
}
Используя CSS:
p {
text-transform: lowercase;
}
p::first-letter {
text-transform: uppercase
}
Используя JS:
const capitalize = (s) => s.charAt(0).toUpperCase() + s.slice(1).toLowercase();