Как с помощью регулярного выражения отделить символы с большой буквой, добавив пробел?
Как можно обработать текст, что если приходит
ЭтоОченьДлинныйТекстВообщеБезПробелов ИТутБылПробел
Как эту строку разделить по правилу, что б перед большой буквой поставился пробел, но только если спереди пробела не было и это не первый символ строки? Что б получить
Это Очень Длинный Текст Вообще Без Пробелов И Тут Был Пробел
Ответы (3 шт):
Автор решения: ΝNL993
→ Ссылка
Примерно вот так?
function solution(str) {
return str.replace(/[А-ЯЁ]/g, (m, i) =>
i === 0 || str[i - 1] === ' '
? m
: ' ' + m
)
}
function test(current, expected) {
let changed = solution(current)
console.log(changed, '\nPASSED?', changed === expected)
}
test(
'ЭтоОченьДлинныйТекстВообщеБезПробелов ИТутБылПробел',
'Это Очень Длинный Текст Вообще Без Пробелов И Тут Был Пробел'
)
test(
'ИТутБылПробелЁМоё',
'И Тут Был Пробел Ё Моё'
)
Автор решения: Miha
→ Ссылка
let str = 'ЭтоОченьДлинныйТекстВообщеБезПробелов ИТутБылПробел';
console.log(str.replace(/(?<!\s)[\А-\Я]/g, ' $&').trim());
Автор решения: Алексей Р
→ Ссылка
Где 2, там и 3
text = 'ЭтоОченьДлинныйТекстВообщеБезПробелов ИТутБылПробел';
console.log(text.replace(/(?<!^|\s)([А-ЯЁ])/g,' $1'))