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

Servidor HTTP en Android con Flutter

El día de hoy te mostraré cómo crear un servidor HTTP (servidor web) en Android…

4 días hace

Imprimir automáticamente todos los PDF de una carpeta

En este post te voy a enseñar a designar una carpeta para imprimir todos los…

4 días hace

Guía para imprimir en plugin versión 1 desde Android

En este artículo te voy a enseñar la guía para imprimir en una impresora térmica…

1 semana hace

Añadir tasa de cambio en sistema de información

Hoy te voy a mostrar un ejemplo de programación para agregar un módulo de tasa…

2 semanas hace

Comprobar validez de licencia de plugin ESC POS

Los usuarios del plugin para impresoras térmicas pueden contratar licencias, y en ocasiones me han…

2 semanas hace

Imprimir euro € en impresora térmica

Hoy voy a enseñarte cómo imprimir el € en una impresora térmica. Vamos a ver…

4 semanas hace

Esta web usa cookies.