Можно сопоставить использование метода String#replace()
со следующим регулярным выражением:
/\.\s*\w/
в сочетании с пользовательским обратным вызовом замены, в котором заглавная строка соответствует для достижения этой цели.Основная идея здесь заключается в том, чтобы использовать заглавную букву в любой подстроке, которая является первой буквой, следующей непосредственно за символом полной остановки (например, \.
).Регулярное выражение также учитывает случаи, когда между полной точкой и следующим символом (например, \w
) встречается ноль или более пробелов (например, \s*
):
var input = "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.That's it!";
var result = input.replace(/\.\s*\w/, function(match) {
return match.toUpperCase();
});
console.log('Regular expression based approach', result);
Также я заметил в комментарии, что вы спросили о методе, который не требует регулярных выражений.Хотя регулярные выражения, как правило, предпочтительнее из таких проблем, ниже показан не основанный на повторениях подход:
const input = `lorem ipsum is simply dummy text of the printing and typesetting industry. lorem ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.that's it!`;
console.log('Non regular expression based approach:',
input
.split('.')
.map((sentence) => {
for (var i = 0; i < sentence.length; i++) {
if (sentence[i] !== ' ') {
sentence = sentence.substr(0, i) + sentence[i].toUpperCase() + sentence.substr(i + 1);
break;
}
}
return sentence
})
.join('.')
)