javascript

JavaScript: separar cadena en bloques

En el post de hoy vamos a ver cómo dividir una cadena en pedazos si es que supera una máxima longitud. Por ejemplo, separar la string en JS si mide más de 5, y además de eso dividirla en fragmentos de N cantidad.

Vamos a ver cómo separar una cadena cada cierto número de caracteres y también cómo dividirla en trozos pequeños colocados en un arreglo donde se respete una cierta longitud.

Colocar separador en cadena con JavaScript

Dividir cadena en JavaScript usando separador y arreglo

Veamos el primer enfoque. Vamos a poner un carácter que será un separador de la cadena, de modo que estará presente cada N lugares donde N es la máxima longitud.

La función queda así:

const separarCadenaSiSuperaLongitud = (cadena, maximaLongitud, separador) => {
    let resultado = "";
    let indice = 0;
    while (indice < cadena.length) {
        const pedazo = cadena.substring(indice, indice + maximaLongitud);
        indice += maximaLongitud;
        resultado += pedazo;
        if (indice < cadena.length) {
            resultado += separador;
        }
    }
    return resultado;
};

Recorremos la cadena y la vamos cortando desde un índice hasta ese índice sumado a la máxima longitud. Aquí estoy usando substring para que sea portable a otros lenguajes, pero bien podrías usar substr y ahorrarte la suma de la línea 6.

La subcadena que resulta de dividir la cadena original la agrego al resultado y luego compruebo si no estoy en el final de la cadena para agregar el separador.

Para probar podemos hacer lo siguiente:

let cadena = "Hola mundo, soy una cadena. Me gusta programar en JavaScript desde parzibyte.me";
console.log("Original es: ");
console.log(cadena);

const maximaLongitud = 5;
const separador = "_";
const separada = separarCadenaSiSuperaLongitud(cadena, maximaLongitud, separador);

console.log("Separada es: ");
console.log(separada);

Con la siguiente salida:

Original es:
Hola mundo, soy una cadena. Me gusta programar en JavaScript desde parzibyte.me
Separada es:
Hola _mundo_, soy_ una _caden_a. Me_ gust_a pro_grama_r en _JavaS_cript_ desd_e par_zibyt_e.me

Como puedes ver, obtenemos la cadena separada cada N lugares según la máxima longitud que estamos permitiendo y el separador elegido.

Dividir cadena en arreglo con JS

Otro enfoque es el de cortar la cadena en pedazos de máximo N longitud y agregarlos a un arreglo, de modo que la cadena ahora estará separada cada N lugares pero no tendrá separador, sino que los bloques estarán en un arreglo. La función queda así:

const separarCadenaEnArregloSiSuperaLongitud = (cadena, maximaLongitud) => {
    const resultado = [];
    let indice = 0;
    while (indice < cadena.length) {
        const pedazo = cadena.substring(indice, indice + maximaLongitud);
        indice += maximaLongitud;
        resultado.push(pedazo);
    }
    return resultado;
};

Lo que hacemos es declarar un arreglo, luego recorremos la cadena, la vamos cortando y agregamos el pedazo al arreglo en la línea 7. Al final devolvemos el arreglo que tendrá la cadena separada según el parámetro de la máxima longitud.

Podemos probar con el siguiente ejemplo:

let cadena = "Hola mundo, soy una cadena. Me gusta programar en JavaScript desde parzibyte.me";
console.log("Original es: ");
console.log(cadena);

const maximaLongitud = 5;
const separadaEnArreglo = separarCadenaEnArregloSiSuperaLongitud(cadena, maximaLongitud);
console.log("Separada en arreglo es: ");
console.log(separadaEnArreglo);

La salida será el siguiente array:

Original es:
Hola mundo, soy una cadena. Me gusta programar en JavaScript desde parzibyte.me
Separada en arreglo es:
[
  'Hola ', 'mundo', ', soy',
  ' una ', 'caden', 'a. Me',
  ' gust', 'a pro', 'grama',
  'r en ', 'JavaS', 'cript',
  ' desd', 'e par', 'zibyt',
  'e.me'
]

Y así es como se puede separar una cadena en trozos más pequeños respetando una máxima longitud. Obviamente puedes cambiar la longitud y el separador como tú prefieras. Por cierto, esto funciona en JS del lado del cliente y del servidor.

Para terminar te dejo con más tutoriales de JavaScript en mi blog.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Entradas recientes

Desplegar PWA creada con Vue 3, Vite y SQLite3 en Apache

Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…

3 días hace

Arquitectura para wasm con Go, Vue 3, Pinia y Vite

En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…

3 días hace

Vue 3 y Vite: crear PWA (Progressive Web App)

En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…

3 días hace

Errores de Comlink y algunas soluciones

Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…

3 días hace

Esperar promesa para inicializar Store de Pinia con Vue 3

En este artículo te voy a enseñar cómo usar un "top level await" esperando a…

3 días hace

Solución: Apache – Server unable to read htaccess file

Ayer estaba editando unos archivos que son servidos con el servidor Apache y al visitarlos…

4 días hace

Esta web usa cookies.