Я не знаю, почему все эти решения настолько сложны, но я просто нашел, что этого достаточно:
function camelCaseToDash(input){
// replace Capital letter with the letter + a dash: '-', then lowercase everything.
return input.replace(/([A-Z])/g, '-$1').toLowerCase();
}
//or, using a callback function, directly lowercasing.
function camelCaseToDashCallback(input){
//replace capital letter with lowercase variant + a dash '-'.
return input.replace(/([A-Z])/g, (x)=> "-"+ x.toLowerCase());
}
обычно вариант 1 быстрее: https://jsfiddle.net/4557z/17/