用于将snake_case更改为PascalCase的Javascript方法 [英] Javascript method for changing snake_case to PascalCase

查看:76
本文介绍了用于将snake_case更改为PascalCase的Javascript方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在寻找一种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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆