将下划线转为驼峰写法:
function under2camal(obj){
let str = JSON.stringify(obj || {}).replace(
/"[\w+_\w+]+":/g,
function(match){
console.log(match); //"user_name": "user_age":
return match.replace(/_(.)/g, function(match2, p2){
console.log(match2, p2); //_n n; _a a
return p2.toUpperCase();
})
})
return JSON.parse(str);
}
let user = {
"user_name": 'Tom',
"user_age": 18
}
const newUser = under2camal(user);
console.log(newUser); // {"userName": 'Tom', "userAge": 18}
replace方法的第二个参数可以是字符串,也可以是一个函数。指定为函数时,函数的结果(返回值)将用作替换字符串。
// 函数签名
function replacer(match, p1, p2, /* …, */ pN, offset, string, groups) {
return replacement;
}
match:匹配的子字符串
p1,p2...pN:捕获的子字符串,即括号内匹配的字符串
offset:原始字符串中匹配子字符串的偏移量