вырезать из текста слова которые написаны заглавными буквами javascript

Есть текст:

ЭтО теКст КОТОРЫЙ нужно ОБРЕЗАТЬ

Как из данного текста вырезать слова которые написаны заглавными буквами?

КОТОРЫЙ ОБРЕЗАТЬ

Знаю как обрезать буквы заглавные но как вырезать слова не знаю


Ответы (1 шт):

Автор решения: vsemozhebuty

Можно при помощи Unicode property escapes:

const str = 'ЭтО теКст КОТОРЫЙ нужно ОБРЕЗАТЬ 123';

// Одна или несколько заглавных букв и цифры в окружении не-букв.
const upperCaseRegexp = /(?<!\p{L})(?:\p{N}+|\p{Lu}+)(?!\p{L})/gu;

const upperCaseWords = str.match(upperCaseRegexp) || [];

console.log(upperCaseWords.join(' ')); // 'КОТОРЫЙ ОБРЕЗАТЬ 123'

Удаляем одиночные заглавные буквы:

const str = 'ТЕКСТ ЭТОТ Д В ТЕСТОВЫЙ';

// Одна заглавная  бува в окружении не-букв.
const upperCaseSingleLetters = /(?<!\p{L})\p{Lu}(?!\p{L})/gu;

const noUpperCaseSingleLetters = str.replace(upperCaseSingleLetters, '')
                                    .replace(/  +/, ' '); // Сокращаем пробелы.

console.log(noUpperCaseSingleLetters); // 'ТЕКСТ ЭТОТ ТЕСТОВЫЙ'

→ Ссылка