/** * 解析首字母转大写 * @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 字符串 Ab * @returns 结果 ab */ export function parseFirstLower(str: string): string { if (!str) return str; str = str.replace(/[^_\w]+/g, ''); return str.substring(0, 1).toLowerCase() + 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 (obj === null || obj === undefined) { return obj; } 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 (obj === null || obj === undefined) { return obj; } 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; }