Camel Case 4

  • + 0 comments

    Longwinded Javascript solution with switchcase and regex.

        const splitInput = input.split('\r\n');   
        const words = [];
        let formattedWords;
        
        splitInput.forEach(input => {
            const code = input.slice(0,3);
            const latterString = input.slice(4);
            const splittedWords = [];
            
            switch(code){
                case 'S;V':
                case 'S;C':
                splitWords = latterString.split(/(?=[A-Z])/).map(word => word.toLowerCase());
                words.push(splitWords.join(' '));
                break;
                case 'S;M':
                splitWords = latterString.split(/(?=[A-Z])/).map(word => word.toLowerCase());
                splitWords[splitWords.length -1] = splitWords[splitWords.length -1].slice(0,-2);
                words.push(splitWords.join(' '));
                break;
                case 'C;V':
                combineWords = latterString.split(' ').map(word => word[0].toUpperCase() + word.slice(1));
                combineWords[0] = combineWords[0][0].toLowerCase() + combineWords[0].slice(1);
                words.push(combineWords.join(''));
                break;
                case 'C;C':
                combineWords = latterString.split(' ').map(word => word[0].toUpperCase() + word.slice(1));
                words.push(combineWords.join(''));
                break;
                case 'C;M':
                combineWords = latterString.split(' ').map(word => word[0].toUpperCase() + word.slice(1));
                combineWords[0] = combineWords[0][0].toLowerCase() + combineWords[0].slice(1);
                words.push(combineWords.join('')+ '()');
                break;
            }
        })
        
        formattedWords = words.join('\n');
        console.log(formattedWords);
    }