feat: 解析工具下划线转驼峰
This commit is contained in:
76
src/utils/parse-utils.ts
Normal file
76
src/utils/parse-utils.ts
Normal file
@@ -0,0 +1,76 @@
|
||||
/**
|
||||
* 解析首字母转大写
|
||||
* @param str 字符串 ab
|
||||
* @returns 结果 Ab
|
||||
*/
|
||||
export function parseFirstUpper(str: string): string {
|
||||
if (!str) return str;
|
||||
str = str.replace(/[^_\w]+/g, '');
|
||||
return str.substring(0, 1).toUpperCase() + str.substring(1);
|
||||
}
|
||||
|
||||
/**
|
||||
* 解析下划线转驼峰
|
||||
* @param str 字符串 a_b
|
||||
* @returns 驼峰风格 aB
|
||||
*/
|
||||
export function parseStrLineToHump(str: string): string {
|
||||
if (!str) return str;
|
||||
return str.replace(/_(\w)/g, (_item, letter) => letter.toUpperCase());
|
||||
}
|
||||
|
||||
/**
|
||||
* 解析驼峰转下划线
|
||||
* @param str 字符串 aB
|
||||
* @returns 下划线风格 a_b
|
||||
*/
|
||||
export function parseStrHumpToLine(str: string): string {
|
||||
if (!str) return str;
|
||||
return str.replace(/([A-Z])/g, '_$1').toLowerCase();
|
||||
}
|
||||
|
||||
/**
|
||||
* 对象的key值驼峰转下划线
|
||||
* @param obj 对象属性 字符数组orJSON对象
|
||||
* @returns 驼峰转下划线
|
||||
*/
|
||||
export function parseObjHumpToLine(obj: any): any {
|
||||
if (Array.isArray(obj)) {
|
||||
return obj.map(v => parseObjHumpToLine(v));
|
||||
}
|
||||
if (typeof obj === 'object') {
|
||||
Object.keys(obj).forEach(key => {
|
||||
const new_key = parseStrHumpToLine(key);
|
||||
if (new_key !== key) {
|
||||
obj[new_key] = obj[key];
|
||||
delete obj[key];
|
||||
}
|
||||
obj[new_key] = parseObjHumpToLine(obj[new_key]);
|
||||
});
|
||||
return obj;
|
||||
}
|
||||
return obj;
|
||||
}
|
||||
|
||||
/**
|
||||
* 对象的key值下划线转驼峰
|
||||
* @param obj 对象属性 字符数组orJSON对象
|
||||
* @returns 下划线转驼峰
|
||||
*/
|
||||
export function parseObjLineToHump(obj: any): any {
|
||||
if (Array.isArray(obj)) {
|
||||
return obj.map(v => parseObjLineToHump(v));
|
||||
}
|
||||
if (typeof obj === 'object') {
|
||||
Object.keys(obj).forEach(key => {
|
||||
const new_key = parseStrLineToHump(key);
|
||||
if (new_key !== key) {
|
||||
obj[new_key] = obj[key];
|
||||
delete obj[key];
|
||||
}
|
||||
obj[new_key] = parseObjLineToHump(obj[new_key]);
|
||||
});
|
||||
return obj;
|
||||
}
|
||||
return obj;
|
||||
}
|
||||
Reference in New Issue
Block a user