first - Javascript/jQuery: divida la cadena camelcase y añada guión en lugar de espacio
format string first letter uppercase javascript (5)
No sé por qué todas estas soluciones son tan complejas, pero simplemente me pareció suficiente:
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());
}
en general, la opción 1 es más rápida: https://jsfiddle.net/4557z/17/
Me imagino que esta es una situación de partes múltiples con expresiones regulares, pero ¿cómo dividirías una cadena de camello en mayúsculas y las convertirías en letras minúsculas, y luego agregarías un guión entre cada cadena nueva?
Por ejemplo:
thisString
se convertiría:
esta cadena
Pruebe algo como:
var myStr = ''thisString'';
myStr = myStr.replace(/([a-z])([A-Z])/g, ''$1-$2'').toLowerCase();
Pruebe lo siguiente:
var token = document.getElementsByTagName(''strong'')[0].innerHTML,
replaced = token.replace(/[a-z][A-Z]/g, function(str, offset) {
return str[0] + ''-'' + str[1].toLowerCase();
});
alert(replaced);
Ejemplo - http://jsfiddle.net/7DV6A/2/
Documentación para la función de replace
cadena:
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/replace
Tarde para responder, pero esta solución funcionará para los casos en que una sola letra es enchapada en camello.
''thisIsATest''.replace(/([a-zA-Z])(?=[A-Z])/g, ''$1-'').toLowerCase(); // this-is-a-test
String.prototype.camelCaseToDashed = function(){
return this.replace(/([a-z])([A-Z])/g, ''$1-$2'').toLowerCase();
}
// Usage
"SomeVariable".camelCaseToDashed();