Regex в верхний регистр все слова, кроме исключая '(апостроф) - PullRequest
0 голосов
/ 16 октября 2019

Я пытаюсь построить функцию для UpperCase всех строковых слов, но у меня проблема со следующим:

String.prototype.upper = function() {
    return this.replace(/[^a-zA-Z0-9]+(.)/g, chr => chr.toUpperCase())
 }


let str = "My uncle's car is red";
console.log(str.upper()) 


//My Uncle'S Car Is Red

Мне нужно исключить S избудучи верхним регистром, после апострофа.

Есть идеи, как это можно сделать?

Спасибо

1 Ответ

1 голос
/ 16 октября 2019

Я бы изменил регулярное выражение на \s+\w, чтобы искать букву после пробелов и / или табуляций.

const upper = (input) => input.replace(/\s+\w/g, x => x.toUpperCase());
console.log(upper("My uncle's car is red"));
...