JavaScript | Как разъединить слипшуюся строку по заглавным буквам?

Есть строка:

var stroka = "ДелимСловаНаЧасти"

Мы хотим разделить слова в этой строке по принципу заглавной буквы. Как это сделать?

Способ № 1- при помощи массивов

// Делаем из строки массив
var massiv = [...stroka]

// Добавляем пробелы перед заглавными буквами. Не трогаем первую букву (оставляем как есть).
var massiv2 = massiv.map(i => {
   if(x==0 && i.toUpperCase() == i){x++; return i}
   else if(i.toUpperCase() == i){return " " + i}
   else{return i}
}, x=0)

// Склеиваем элементы нового массива в строку
var stroka2 = massiv2.join("")

Результат выполнения алгоритма:

Разделили строку по заглавным буквам - JavaScript
Разделили строку по заглавным буквам — JavaScript

Мы разделили слипшуюся последовательность слов на отдельные слова с пробелами. Первая заглавная буква в итоговой строке осталась без изменений — перед ней нет пробела.

 

Функция, разделяющая строку по заглавным буквам, добавляя пробелы перед заглавными буквами, кроме первой заглавной

function delimstroku (str){
   return [...str]
      .map(i=>{
         if(x==0&&i.toUpperCase()==i){x++; return i}
         else if(i.toUpperCase()==i){return " " + i}
         else{return i}
      }, x=0)
      .join("")
}
Функция разделяющая строку по заглавным буквам - JavaScript
Функция разделяющая строку по заглавным буквам — JavaScript

Получаем строку:

"Делим Слова На Части"

 

Функция, разделяющая строку по заглавным буквам, добавляя пробелы перед заглавными буквами и уменьшая их регистр, кроме первой

function delimstroku (str){
   return [...str]
      .map(i=>{
         if(x==0&&i.toUpperCase()==i){x++; return i.toUpperCase()}
         else if(i.toUpperCase()==i){return " " + i.toLowerCase()}
         else{return i}
      }, x=0)
      .join("")
}
Функция разделяющая строку по заглавным буквам, уменьшая регистр, кроме первой - JavaScript
Функция разделяющая строку по заглавным буквам, уменьшая регистр, кроме первой — JavaScript

Получаем строку:

"Делим слова на части"

Информационные ссылки

JavaScript | Массивы (Array)

Стандарт ECMAScript — Раздел «23.1 Array Objects» — https://tc39.es/ecma262/#sec-array-objects

Поделись записью