javascript - test - probar expresiones regulares
Regex para dividir la caja del camello (5)
Tengo una expresión regular en JavaScript para dividir mi cadena de mayúsculas y minúsculas en mayúsculas usando el siguiente código (que luego obtuve de here ):
"MyCamelCaseString"
.replace(/([A-Z])/g, '' $1'')
.replace(/^./, function(str){ return str.toUpperCase(); })
Así vuelve eso:
"My Camel Case String"
Lo que es bueno. Sin embargo, quiero dar un paso adelante. ¿Podría alguien ayudarme con una expresión regular que se dividirá si, y solo si, el primer carácter es minúscula y el segundo es mayúscula?
Por lo tanto, el ejemplo anterior será el resultado que espero, pero si lo hago:
"ExampleID"
Entonces me devuelven:
"Example ID"
En lugar de
"Example I D"
Ya que se está dividiendo en cada mayúscula e ignorando todo lo anterior.
Espero que tenga sentido! Y gracias :).
Esta cadena RegExp es
.replace("/([a-zA-Z][a-z]*)/g",...);
Hola, no vi ninguna demo vivo, gracias
var tests =[ "camelCase",
"simple",
"number1Case2"]
function getCamelCaseArray(camel) {
var reg = /([a-z0-9])([A-Z])/g;
return camel.replace(reg, ''$1 $2'').split('' '');
}
function printTest(test) {
document.write(''<p>''+test + ''='' + getCamelCaseArray(test)+''</p>'');
}
tests.forEach(printTest);
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="style.css">
<script src="script.js"></script>
</head>
<body>
</body>
</html>
Mi conjetura es reemplazar /([AZ])/
con /([az])([AZ])/
y '' $1''
con ''$1 $2''
"MyCamelCaseString"
.replace(/([a-z])([A-Z])/g, '' $1 $2'');
/([a-z0-9])([AZ])/
para números que cuentan como caracteres en minúscula
Si desea una serie de palabras en minúsculas:
"myCamelCaseString".split(/(?=[A-Z])/).map(s => s.toLowerCase());
Si quieres una cadena de minúsculas:
"myCamelCaseString".split(/(?=[A-Z])/).map(s => s.toLowerCase()).join('' '');
Si quieres separar las palabras pero mantén la caja:
"myCamelCaseString".replace(/([a-z])([A-Z])/g, ''$1 $2'')
"MyCamelCaseString".replace(/([a-z](?=[A-Z]))/g, ''$1 '')
salidas:
"My Camel Case String"