将具有多个大写单词的文本转换为具有一个大写单词和其他小写单词的文本

时间:2019-06-18 11:30:03

标签: javascript regex

我如何转换这样的字符串:

docker start ....

为类似这样的字符串:

let a = "ProductionTest"

我知道如何使用正则表达式来检测大写字母,例如:

Production test

但无法理解,如何使用它来转换上面给出的文本。

3 个答案:

答案 0 :(得分:3)

搜索[A-Z]个字符,然后将.replace()与回调函数一起使用以添加一个空格并将匹配的字符转换为小写。

let a = "ProductionTest";

let res = a[0] + a.slice(1).replace(/[A-Z]/g, m => " " + m.toLowerCase());

console.log(res);

答案 1 :(得分:0)

希望这会有所帮助

let a = "ProductionTest"
let b = a.match(/[A-Z][a-z]*/g).join(' ').toLowerCase()
let c = b.charAt(0).toUpperCase() + b.slice(1)

答案 2 :(得分:0)

此解决方案将为您服务

'ProductionTest'.match(/[A-Z][a-z]+/g).reduce((cur, n)=> cur + ' ' + n.toLowerCase());