Trabajar con cadenas puede ser difícil debido al hecho de que implica resolver muchos problemas diversos. Por ejemplo, para simplemente convertir una cadena a un estilo camello, necesita algunas líneas de código:function camelize(str) {
return str.replace(/(?:^\w|[A-Z]|\b\w|\s+)/g, function(match, index) {
if (+match === 0) re
turn "";
return index === 0 ? match.toLowerCase() : match.toUpperCase();
});
}
Este código, por cierto, en el papel de la respuesta a la pregunta de traer cadenas al estilo "camello", reunió la mayoría de los votos en Stack Overflow. Pero incluso él no puede procesar correctamente, por ejemplo, una línea de este tipo:---Foo---bAr---
El resultado del procesamiento de una cadena --- Foo --- bAr ---Pero, ¿qué pasa si estas cadenas, sin embargo, necesitan ser procesadas? Puede arreglar este ejemplo, o puede recurrir a la ayuda de bibliotecas especializadas. Simplifican la implementación de algoritmos complejos y, además, proporcionan al programador herramientas mucho más flexibles y versátiles que, por ejemplo, el ejemplo anterior. Esto puede significar que para resolver una determinada tarea difícil, deberá llamar a un solo método.Hablemos de varias bibliotecas de JavaScript diseñadas para trabajar con cadenas.1. String.js
La biblioteca string.js
, o simplemente S
, es una biblioteca de JavaScript pequeña (menos de 5 Kb, minificada y comprimida) que se puede usar en un navegador y en Node.js. Le da al programador un gran conjunto de métodos para trabajar con cadenas. Estos son métodos de objeto string.js
que, por conveniencia, incluyen métodos de cadena estándar. Un objeto string.js
es un tipo de envoltorio para cadenas regulares.▍Instalación
Para instalar la biblioteca string.js
, solo use el siguiente comando:npm i string
▍ Métodos notables
Entre método
El método between(left, right)
extrae de la cadena la subcadena contenida entre las líneas left
y right
. Por ejemplo, puede usar este método para extraer elementos entre dos etiquetas HTML:var S = require('string');
S('<a>This is a link</a>').between('<a>', '</a>').s
Método Camelize
El método camelize()
elimina espacios, guiones bajos y guiones de la cadena procesada, y convierte esta cadena a un estilo "camello". Este método puede usarse para resolver el problema mencionado al principio del material.var S = require('string');
S('---Foo---bAr---').camelize().s;
Método humanizar
El método humanize()
lleva la cadena procesada a una forma legible. Si algo como esto tuviera que implementarse desde cero, entonces tendrían que escribirse bastantes líneas de código.var S = require('string');
S(' capitalize dash-CamelCase_underscore trim ').humanize().s
Método StripPunctuation
El método stripPunctuation()
elimina los signos de puntuación y varios caracteres especiales, como asteriscos y corchetes, de la cadena. Si crea dicha función usted mismo, existe un alto riesgo de olvidar cualquier personaje que deba procesar.var S = require('string');
S('My, st[ring] *full* of %punct)').stripPunctuation().s;
→ Aquí puede encontrar información más detallada sobre esta biblioteca y sus métodos.2. Voca
La biblioteca de JavaScript Voca
nos ofrece características valiosas que mejoran la usabilidad de las cadenas. Entre sus características están las siguientes:- Cambiar el caso de los personajes.
- Elimina los caracteres especificados al principio y al final de la línea de tiempo.
- Agregar una cadena a una longitud dada.
- Convertir una cadena en una cadena, cuyas palabras están separadas por guiones.
- Escribir una cadena en letras latinas.
- Montaje de líneas según patrones.
- Recortar cadenas a la longitud especificada
- Escapar caracteres especiales para HTML.
El diseño modular de la biblioteca permite, si es necesario, cargar no toda la biblioteca, sino funciones individuales. Esto le permite optimizar paquetes de aplicaciones usando esta biblioteca. El código de la biblioteca está completamente probado, bien documentado y bien mantenido.▍Instalación
Para instalar, Voca
ejecute el siguiente comando:npm i voca
▍ Métodos notables
Método CamelCase
El método camelCase()
convierte la cadena que se le pasa en una cadena escrita en el estilo "camello".var v = require('voca');
v.camelCase('foo Bar');
v.camelCase('FooBar');
v.camelCase('---Foo---bAr---');
Método de latinización
El método latinize()
devuelve el resultado de convertir la cadena que se le pasa en una cadena escrita en letras latinas.var v = require('voca');
v.latinise('cafe\u0301');
v.latinise('août décembre');
v.latinise(' ');
Método IsAlphaDigit
El método isAlphaDigit()
devuelve true
si la cadena que se le pasa contiene solo caracteres alfanuméricos.var v = require('voca');
v.isAlphaDigit('year2020');
v.isAlphaDigit('1448');
v.isAlphaDigit('40-20');
Método CountWords
El método countWords()
devuelve el número de palabras en la cadena que se le pasa.var v = require('voca');
v.countWords('gravity can cross dimensions');
v.countWords('GravityCanCrossDimensions');
v.countWords('Gravity - can cross dimensions!');
Método EscapeRegExp
El método escapeRegExp()
devuelve una cadena basada en la cadena que se le pasa, en la que se escapan los caracteres especiales.var v = require('voca');
v.escapeRegExp('(hours)[minutes]{seconds}');
→ Los detalles sobre la biblioteca Voca
se pueden encontrar aquí3. Anchorme.js
Esta es una biblioteca de JavaScript compacta y rápida para encontrar URL y direcciones de correo electrónico en texto y para convertirlas en hipervínculos funcionales. Estas son sus principales características:- Alta sensibilidad, baja tasa de falsos positivos.
- Validación de enlaces y direcciones de correo electrónico de la lista completa de IANA.
- Validación de números de puerto (si los hay).
- Validación de direcciones IP (si está disponible).
- Soporte para URLs escritas con caracteres que no sean caracteres latinos.
▍Instalación
Para instalar, anchorme.js
ejecute el siguiente comando:npm i anchorme
▍Utilizar
import anchorme from "anchorme";
const input = "some text with a link.com";
const resultA = anchorme(input);
El procesamiento de la cadena se puede configurar utilizando un objeto con parámetros que se pueden pasar a la biblioteca.→ Los detalles anchorme.js
se pueden encontrar aquí4. Underscore.string
Una biblioteca underscore.string
es una extensión underscore.js
para trabajar con cadenas, que se puede usar por separado underscore.js
. Esta biblioteca fue influenciada por ideas de proyectos prototype.js
, right.js
y underscore.js
.Esta biblioteca ofrece al desarrollador muchas funciones útiles diseñadas para trabajar con cadenas. Éstos son algunos de ellos:- capitalizar ();
- limpio ();
- incluye ();
- cuenta ();
- escapeHTML ();
- unescapeHTML ();
- insertar ();
- empalme ();
- comienza con ();
- termina con ();
- titleize ();
- podar ();
- truncar ().
▍Instalación
Aquí está el comando con el que puede instalar la biblioteca:npm i underscore.string
▍ Métodos notables
Método NumberFormat
El método está numberFormat()
diseñado para formatear números.var _ = require("underscore.string");
_.numberFormat(1000, 3)
_.numberFormat(123456789.123, 5, '.', ',');
Método de Levenshtein
El método levenshtein()
devuelve la distancia de Levenshtein entre dos líneas. Lea más sobre el algoritmo utilizado en este método aquí .var _ = require("underscore.string");
_.levenshtein('kitten', 'kittah');
Método de corte
El método chop()
divide la cadena que se le pasa en partes.var _ = require("underscore.string");
_.chop('whitespace', 3);
→ Aquí hay una página donde puede encontrar detalles sobre la bibliotecaunderscore.string
5. Stringz
La característica principal de la biblioteca stringz
es que puede funcionar con caracteres Unicode.Si, sin usar ninguna biblioteca, se ejecuta el siguiente código, resulta que la longitud de la cadena es 2. Lo que
sucede es que el método JS-string length()
devuelve el número de puntos de código de la cadena, no el número de caracteres. De hecho, algunos caracteres están en rangos 010000–03FFFF
y 040000–10FFFF
pueden usar hasta 4 bytes (32 bits) por punto de código, pero esto no cambia la respuesta: para representar algunos caracteres, necesita más de 2 bytes, como resultado, están representados por más de un punto de código.→ Aquí está el material sobre los problemas de procesamiento de caracteres Unicode en JavaScript.▍Instalación
Para instalar esta biblioteca, necesita el siguiente comando:npm i stringz
▍ Métodos notables
Método de límite
El método limit()
convierte la cadena a la longitud especificada.
Método ToArray
El método toArray()
convierte una cadena en una matriz.
→ Aquí está la página del repositorio de la biblioteca¿Y qué herramientas auxiliares utiliza para trabajar con cadenas?Le recordamos que continuamos con el concurso de predicción en el que puede ganar un nuevo iPhone. Todavía hay tiempo para entrar y hacer el pronóstico más preciso sobre los valores tópicos.
