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

大驼峰与下划线互相转换

作者: 简书是什么书 | 来源:发表于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