用于将snake_case更改为PascalCase的Javascript方法 [英] Javascript method for changing snake_case to PascalCase
问题描述
我正在寻找一种JS方法,该方法可以将 snake_case
转换为 PascalCase
,同时保持斜杠完整.
I'm looking for a JS method that will turn snake_case
into PascalCase
while keeping slashes intact.
// examples:
post -> Post
admin_post -> AdminPost
admin_post/new -> AdminPost/New
admin_post/delete_post -> AdminPost/DeletePost
等
我有一些东西可以将 snake_case
转换为 camelCase
并保留斜杠,但是我很难将其转换为 PascalCase
I have something that will turn snake_case
into camelCase
and preserve slashes, but I'm having trouble converting this for PascalCase
这是到目前为止我得到的:
Here's what I've got so far:
_snakeToPascal(string){
return string.replace(/(_\w)/g, (m) => {
return m[1].toUpperCase();
});
}
任何建议都值得赞赏!
这是我最终使用的内容.如果您使用此方法,请记住我正在使用 this._upperFirst
,因为我在一个类中使用了它.有点油腻,但是可以用.
Here is what I ended up using. If you use this be mindful that I'm using this._upperFirst
since I'm using it in a class. It's kinda greasy but it works.
_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);
}
推荐答案
这应该可以解决问题.
function _snake2Pascal( str ){
str +='';
str = str.split('_');
for(var i=0;i<str.length;i++){
str[i] = str[i].slice(0,1).toUpperCase() + str[i].slice(1,str[i].length);
}
return str.join('');
}
通过OP中显示的所有测试用例的版本:
a version that passes all your test cases shown in the OP:
function snake2Pascal( str ){
str +='';
str = str.split('_');
function upper( str ){
return str.slice(0,1).toUpperCase() + str.slice(1,str.length);
}
for(var i=0;i<str.length;i++){
var str2 = str[i].split('/');
for(var j=0;j<str2.length;j++){
str2[j] = upper(str2[j]);
}
str[i] = str2.join('');
}
return str.join('');
}
这篇关于用于将snake_case更改为PascalCase的Javascript方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!