Dada una string, la tarea es formatear la string en la clave de licencia.
Normas:
- La string de entrada contiene caracteres alfanuméricos y guiones
- La string de entrada está separada por N+1 grupos usando N guiones.
- La string de salida debe agruparse por K caracteres usando un guión.
- El primer grupo puede tener menos de K caracteres pero no cero.
- La string de salida no debe contener ningún carácter en minúscula.
Ha dado la string de entrada str y el número K
Ejemplo:
Input: str = "dsf354g4dsg1" k = 4 Output: "DSF3-54G4-DSG1" Input: str = "d-sf354g4ds-g1dsfgdf-sfd5ds65-46" k = 6 Output: "D-SF354G-40DSGS-FGFSFD-DS6546" Input: str = " d-sf354';.;.';.'...,k/]gcs-hsfgdf-sfs6-46" Output: k = 5 Output: "DS-F354K-GCSHS-FGDFS-FS646"
Para solucionar este problema utilizamos los siguientes pasos:
- Cree una función que tome dos argumentos str y k .
- Elimine los espacios en blanco iniciales y finales con el método String.trim() .
- Reemplace todos los caracteres especiales usando el método String.replace() y buscando con regex /[^a-zA-Z0-9]/g .
- Transforme los caracteres de string en mayúsculas utilizando el método String.toUpperCase() .
- Convierte la string en Array usando el método String.split() . Ahora tiene str es una array en la que todos los elementos son caracteres en mayúsculas y números (en forma de string).
- Use un ciclo for e inicialice el ciclo con la longitud de str y ejecútelo hasta que i sea mayor que 0 y después de cada iteración, el valor de i disminuya en k. Básicamente, queremos un bucle que se ejecute desde la parte trasera de la string.
- Ahora concatene la string en cada iteración con un guión «-«
- Ahora, en str usando el método Array.join() , convierta str en String y devuelva la string de la función.
Javascript
<script> function format(str, k) { str = str // Remove the white spaces .trim() // Replace all the special // characters with "" .replace(/[^a-zA-Z0-9]/g, "") // Transform the string into // uppercase characters .toUpperCase() // Convert the string into array .split(""); // Store the length of the // array into len let len = str.length; for (let i = len; i > 0; i = i - k) { if (i != len) { // Concatenate the string with "-" str[i - 1] = str[i - 1] + "-"; } } // Join the array to make it a string return str.join(""); } console.log(format("dsf354g4dsg1", 4)) console.log(format( "d-sf354g40ds-gsfgf-sfdds65-46", 6)) console.log(format( " d-sf354';.;.';.'...,k/]gcs-hsfgdf-sfs6-46", 5)) </script>
Producción:
"DSF3-54G4-DSG1" "D-SF354G-40DSGS-FGFSFD-DS6546" "DS-F354K-GCSHS-FGDFS-FS646"
Publicación traducida automáticamente
Artículo escrito por _saurabh_jaiswal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA