驼峰表示法和中横线表示法相互转化

56 阅读1分钟
// 已知有字符串a=”get-element-by-id”,写一个function将其转化成驼峰表示法”getElementById”;
var str1 = "get-element-by-id",
str2 = "getElementById",
str3 = "GetElementById";
function change1(str, mark = "-") {
let res = str.replace(
/-(\w{1,})/g,
function (match, $1, index, str, ...args) {
let rs = $1.substr(0, 1).toUpperCase() + $1.substr(1).toLowerCase();
return rs;
}
);
return res;
}
//  驼峰表示法转化成中横线表示法: 这里考虑大小驼峰的情况
function change2(str = "", mark = "-") {
let res = "";
res = str.replace(/([A-Z]{1})/g, (match, $1, index, ...args) => {
console.log("change2:", match, $1, index, args);
let lowerStr = $1.toLowerCase()
let rs = index == 0 ? lowerStr :mark + lowerStr;
return rs;
});
console.log("结果:", res);
return res;
}
let res1 = change1(str1);
console.log(
"已知有字符串a=”get-element-by-id”,写一个function将其转化成驼峰表示法”getElementById”;:",
res1
);

let res2 = change2(str2);
let res3 = change2(str3);
console.log("驼峰表示法转化成中横线表示法:", res2, res3);