【发布时间】:2016-03-25 10:04:55
【问题描述】:
我正在尝试将字符串从PascalCase 转换为param-case:
'HelloWorld'.replace(/([A-Z])/g, (str) => { return '-' + str.toLowerCase() })
"-hello-world"
如您所见,我几乎在那里......我只需要删除字符串开头的-。该怎么做?
【问题讨论】:
标签: javascript
我正在尝试将字符串从PascalCase 转换为param-case:
'HelloWorld'.replace(/([A-Z])/g, (str) => { return '-' + str.toLowerCase() })
"-hello-world"
如您所见,我几乎在那里......我只需要删除字符串开头的-。该怎么做?
【问题讨论】:
标签: javascript
在您的代码中,要删除第一个单词,您只需在输出的其余部分使用 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;
【讨论】:
您可以使用以下代码:
var name = "HelloWorld";
var paramCaseName = name.replace(/([A-Z]+(.))/g, function(_, separator, letter, offset) {
return (offset ? "-" + separator : separator).toLowerCase();
});
console.log(paramCaseName);
基于angular源代码。
【讨论】: