Bonfire: Spinal Tap Case
by Luis Valle
JavaScript
function spinalCase(str) {
str = str.replace(/\-/g, ' ').replace(/\_/g, ' ');
var arrM = str.split(' ');
if (arrM.length > 1) {
for (var i=0; i < arrM.length; i++) {
arrM[i] = arrM[i].toLowerCase();
}
return arrM.join('-');
} else {
var xArr = [];
xArr.push(arrM[0][0].toLowerCase());
for (var i=1; i < arrM[0].length; i++) {
var xThis = arrM[0][i];
if (xThis.match(/^[A-Z]*$/)) {
xArr.push('-' + xThis.toLowerCase());
} else {
xArr.push(xThis.toLowerCase());
}
}
return xArr.join('');
}
return str;
}
alert(spinalCase('ThisIsSpinalTapYes'));