如何在JavaScript中将camel-case字符串转换为破折号?

Tim*_*imo 6 javascript string camelcasing

我想转换这些字符串:

fooBar
FooBar
Run Code Online (Sandbox Code Playgroud)

成:

foo-bar
-foo-bar
Run Code Online (Sandbox Code Playgroud)

对于任何给定的字符串,我如何在JavaScript中以最优雅和最高效的方式执行此操作?

cev*_*ing 16

对于不需要前面连字符的人:

console.log ("CamelCase".replace(/[A-Z]/g, (match, offset) => (offset > 0 ? '-' : '') + match.toLowerCase()))
Run Code Online (Sandbox Code Playgroud)


ibr*_*rir 15

您可以使用replace正则表达式:

let dashed = camel.replace(/[A-Z]/g, m => "-" + m.toLowerCase());
Run Code Online (Sandbox Code Playgroud)

它匹配所有大写字母,并用它们之前的小写版本替换它们"-".

例:

console.log("fooBar".replace(/[A-Z]/g, m => "-" + m.toLowerCase()));
console.log("FooBar".replace(/[A-Z]/g, m => "-" + m.toLowerCase()));
Run Code Online (Sandbox Code Playgroud)


小智 5

也许你可以kebabCase从 lodash使用:https ://lodash.com/docs/4.17.15#kebabCase