【问题标题】:Turning a string from PascalCase to param-case: remove extra dash at the beginning将字符串从 PascalCase 转换为 param-case:在开头删除多余的破折号
【发布时间】:2016-03-25 10:04:55
【问题描述】:

我正在尝试将字符串从PascalCase 转换为param-case

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

如您所见,我几乎在那里......我只需要删除字符串开头的-。该怎么做?

【问题讨论】:

标签: javascript


【解决方案1】:

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

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

或者您也可以通过这样做将 pascalcase 转换为 camelcase

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;

【讨论】:

    【解决方案2】:

    您可以使用以下代码:

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

    基于angular源代码。

    【讨论】:

      猜你喜欢
      • 2010-10-18
      • 2017-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-15
      • 2020-01-12
      • 1970-01-01
      相关资源
      最近更新 更多