Соответствует началу слова (граница слова, с \b
), отрицательный взгляд на эти три слова, за которыми следуют границы слова, затем сопоставьте символы слова и используйте функцию замены:
var str = "Mr Blue has a blue house and a blue car.";
var res = str.replace(/\b(?!blue\b|house\b|car\b)\w+/g, function(x) {
return x.toUpperCase();
});
console.log(res);
Границы слова в конце каждого из этих трех слов необходимы для правильного соответствия houses
(и только house
как отдельного слова,не будет совпадать).
!
ничего не значит в регулярном выражении, оно просто будет соответствовать литералу !
, которого ваша строка нигде не содержит.