美文网首页
驼峰命名与下划线相互转换

驼峰命名与下划线相互转换

作者: Shiyouzhang | 来源:发表于2021-04-13 14:09 被阅读0次

    js将下划线命名与驼峰式命名相互转换

    驼峰 下划线

    下划线转驼峰式命名

    
    // 字符串的下划线格式转驼峰格式,eg:hello_world => helloWorld
    function underline2Hump(s) {
        return s.replace(/_(\w)/g, function (all, letter) {
            return letter.toUpperCase()
        })
    }
    
    // JSON对象的key值转换为驼峰式
    function jsonToHump(obj) {
        if (obj instanceof Array) {
            obj.forEach(function (v, i) {
                jsonToHump(v)
            })
        } else if (obj instanceof Object) {
            Object.keys(obj).forEach(function (key) {
                var newKey = underline2Hump(key)
                if (newKey !== key) {
                    obj[newKey] = obj[key]
                    delete obj[key]
                }
                jsonToHump(obj[newKey])
            })
        }
        return obj
    }
    

    驼峰式命名转换为下划线

    
    // 字符串的驼峰格式转下划线格式,eg:helloWorld => hello_world
    function hump2Underline(s) {
        return s.replace(/([A-Z])/g, '_$1').toLowerCase()
    }
    
    
    // JSON对象的key值转换为下划线格式
    function jsonToUnderline(obj) {
        if (obj instanceof Array) {
            obj.forEach(function (v, i) {
                jsonToUnderline(v)
            })
        } else if (obj instanceof Object) {
            Object.keys(obj).forEach(function (key) {
                var newKey = hump2Underline(key)
                if (newKey !== key) {
                    obj[newKey] = obj[key]
                    delete obj[key]
                }
                jsonToUnderline(obj[newKey])
            })
        }
        return obj
    }
    

    相关文章

      网友评论

          本文标题:驼峰命名与下划线相互转换

          本文链接:https://www.haomeiwen.com/subject/itxclltx.html