Convert hyphens to camel case (camelCase)

后端 未结 13 1895
梦谈多话
梦谈多话 2020-12-04 08:02

With regex (i assume) or some other method, how can i convert things like:

marker-image or my-example-setting to markerImage o

13条回答
  •  广开言路
    2020-12-04 08:11

    is also possible use indexOf with recursion for that task.

    input some-foo_sd_dsd-weqe
    output someFooSdDsdWeqe
    

    comparison ::: measure execution time for two different scripts:

    $ node camelCased.js
    someFooSdDsdWeqe
    test1: 2.986ms
    someFooSdDsdWeqe
    test2: 0.231ms
    

    code:

    console.time('test1');
    function camelCased (str) {
    
            function check(symb){
    
                let idxOf = str.indexOf(symb);
                if (idxOf === -1) {
                    return str;
                }
    
                let letter = str[idxOf+1].toUpperCase();
                str = str.replace(str.substring(idxOf+1,idxOf+2), '');
                str = str.split(symb).join(idxOf !== -1 ? letter : '');
    
                return camelCased(str);
            }       
    
            return check('_') && check('-');
    
        }
    
    console.log(camelCased ('some-foo_sd_dsd-weqe'));
    console.timeEnd('test1');
    
    
    
    console.time('test2');
    
        function camelCased (myString){
         return myString.replace(/(-|\_)([a-z])/g, function (g) { return  g[1].toUpperCase(); });
       }
    
    
    console.log(camelCased ('some-foo_sd_dsd-weqe'));
    console.timeEnd('test2');
    

提交回复
热议问题