我正在寻找一种将 snake_case
转换为 PascalCase
同时保持斜线完整的 JS 方法。
// examples:
post -> Post
admin_post -> AdminPost
admin_post/new -> AdminPost/New
admin_post/delete_post -> AdminPost/DeletePost
等等
我有一些东西可以将 snake_case
转换为 camelCase
并保留斜线,但我无法将其转换为 PascalCase
这是我到目前为止所得到的:
_snakeToPascal(string){
return string.replace(/(_\w)/g, (m) => {
return m[1].toUpperCase();
});
}
感谢任何建议!
编辑 - 找到解决方案
这是我最终使用的。如果您使用它,请注意我正在使用 this._upperFirst
因为我在类里面使用它。它有点油腻,但很管用。
_snakeToPascal(string){
return string.split('_').map((str) => {
return this._upperFirst(
str.split('/')
.map(this._upperFirst)
.join('/'));
}).join('');
}
_upperFirst(string) {
return string.slice(0, 1).toUpperCase() + string.slice(1, string.length);
}
最佳答案
这是一个保留斜杠并将 snake_case 转换为您想要的 PascalCase 的解决方案。
const snakeToPascal = (string) => {
return string.split("/")
.map(snake => snake.split("_")
.map(substr => substr.charAt(0)
.toUpperCase() +
substr.slice(1))
.join(""))
.join("/");
};
它首先在 '/'
字符处拆分输入,以生成需要转换的 snake_case 字符串数组。然后,它在 '_'
字符处拆分这些字符串以生成一个子字符串数组。然后将此数组中的每个子字符串大写,然后重新连接成单个 PascalCase 字符串。 PascalCase 字符串然后由分隔它们的 '/'
字符重新连接。
关于将 snake_case 更改为 PascalCase 的 Javascript 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44082153/