如何在Vue.js中将驼峰大小写转换为适当的大小写?

时间:2018-07-10 20:40:55

标签: javascript regex vue.js vuejs2 ag-grid

我正在从MongoDB集合中检索数据,并将数据填充到ag-grid中。我希望列标题在适当情况下使用Spacing。最初,该集合的文字行为“ businessAreaName”,我希望它看起来像“ Business Area Name”。

我正在使用正则表达式的概念,但无法找出适当情况下的表达式。

headerName: x.replace(/_/g, ' ').replace(/\w\S*/g, function (txt) 
  { 
    return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase(); 
  })

上面的表达式使我输出为“ Businessareaname”。任何建议都值得赞赏。

1 个答案:

答案 0 :(得分:2)

您真正需要做的就是

  1. 将每个大写字符替换为一个空格,然后跟该字符
  2. 用大写字母替换第一个字符

可以这样做:

const deCamelCase = str => str.replace(/[A-Z]/g, ' $&').replace(/^./, toUppercase);
const toUppercase = str => str.toUpperCase();

打破这一点:

str => str.replace(/[A-Z]/g, ' $&')

这将匹配任何大写字符(仅拉丁字母!),并将其替换为包含空格的字符串以及整个匹配的字符串,编码为$&。请注意,我们需要使用/g标志来确保我们匹配每个实例。

str => str.replace(/^./, toUppercase)

这仅匹配字符串中的第一个字符,并使用toUppercase函数替换该字符,我在另一行中定义了该函数以提高可读性。