将字符串从PascalCase转换为param case:删除开头多余的破折号

Turning a string from PascalCase to param-case: remove extra dash at the beginning

本文关键字:删除 开头 多余 破折号 case param 字符串 PascalCase 转换      更新时间:2023-09-26

我正试图将字符串从PascalCase转换为param-case:

'HelloWorld'.replace(/([A-Z])/g, (str) => { return '-' + str.toLowerCase() })
"-hello-world"

正如你所看到的,我在那里。。。我只需要删除字符串开头的-。如何做到这一点?

在您的代码中,为了删除第一个单词,您只需要在输出的其余部分使用substring(1)来忽略第一个字符

var output = 'HelloWorld'.replace(/([A-Z])/g, (str) => { return '-' + str.toLowerCase() }).substring(1);

或者你也可以通过这个从帕斯卡蛋白酶转化为骆驼蛋白酶

var output = 'HelloWorld'.split(/(?=[A-Z])/g).map(function(value){ return value.charAt(0).toLowerCase()+ value.substring(1)}).join("-");

演示下方

var output = 'HelloWorld'.split(/(?=[A-Z])/g).map(function(value){ return value.charAt(0).toLowerCase()+ value.substring(1)}).join("-");
document.body.innerHTML += output;

您可以使用以下代码:

var name = "HelloWorld";
var paramCaseName = name.replace(/([A-Z]+(.))/g, function(_, separator, letter, offset) {
  return (offset ? "-" + separator : separator).toLowerCase();
});
console.log(paramCaseName);

基于angular源代码。