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

大驼峰与下划线互相转换

作者: 简书是什么书 | 来源:发表于2020-03-04 14:09 被阅读0次

    大驼峰与下划线互相转换

    大驼峰: OrderDetail / UserInfo / UserLog ...
    下划线: order_detail / user_info / user_log ...

    1. 大驼峰转下划线

    //用正则将所有的大写字母替换成 `_字母`,如 `OrderDetail` 替换成 `_Order_Detail`
    preg_replace('/[A-Z]/', '_\\0', 'OrderDetail'); //_Order_Detail 说明:\\0为反向引用
    
    //再取消左边的_
    ltrim('_Order_Detail', '_'); //Order_Detail
    

    2. 下划线转大驼峰

    //用正则将所有的 `_字母` 替换成`大写字母`,如 `user_info_log` 替换成 `userInfoLog`
    preg_replace_callback('/_([a-zA-Z])/', function($m){return strtoupper($m[1]);}, 'user_info_log'); //得到'userInfoLog'
    
    //再将首字母大写
    ucfirst('userInfoLog'); //UserInfoLog
    

    3. 封装成一个函数

    /*
     * 驼峰转换
     * @param string $name 要转换的字符串
     * @param int $type 转换方式,默认为0; 0:驼峰->下划线  1:下划线->驼峰
     * @return string 转换好的字符串
     */
    function parse_name($name, $type=0) {
        if ($type) {
            return ucfirst(preg_replace_callback('/_([a-zA-Z])/', function($match){return strtoupper($match[1]);}, $name));
        } else {
            return strtolower(trim(preg_replace("/[A-Z]/", "_\\0", $name), "_"));
        }
    }
    
    

    相关文章

      网友评论

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

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