将枚举(作为字符串)从 CAPS_CASE 转换为 camelCase

Mat*_*row 3 javascript regex string

我找到了将 ENUM 转换为驼峰大小写的解决方案,但它并不优雅。

var underscoreToCamelCase = function(str) {
    str = (str === undefined || str === null) ? '' : str;
    str = str.replace(/_/g, " ").toLowerCase();
    return str.replace(/(?:^\w|[A-Z]|\b\w|\s+)/g, function(match, index) {
        if (+match === 0) return "";
        return index == 0 ? match.toLowerCase() : match.toUpperCase();
    });
}
Run Code Online (Sandbox Code Playgroud)

因此,如果 str 是 MY_ENUM_STRING,它将返回 myEnumString。

必须有一种方法可以通过单个正则表达式匹配来实现这一目标吗?

CD.*_*D.. 5

尝试这个:

var underscoreToCamelCase = function(str) {

  return str.toLowerCase()
    .replace(/_+(\w|$)/g, function ($$, $1) {
        return $1.toUpperCase();
    });

}
Run Code Online (Sandbox Code Playgroud)

  • 在这种情况下,请接受此答案,将您的问题标记为已解决:) 谢谢。@马修特罗 (2认同)