tengo la siguiente matriz
const re = ' '; var arr = ['\t', '\n3\t3', '\n\t', '\n3\t3', '\n2\t', '\n\t2', '\n']necesito recortar los caracteres \t y \n de las cadenas. Así que cuando intento
for(let i = 0;i < arr.length;i++) { let row = arr[i].split(re); console.log(row); }yo obtengo
['', ''] ['\n3', '3'] ['\n', ''] ['\n3', '3'] ['\n2', ''] ['\n', '2'] ['\n'] No puedo encontrar una manera de eliminar los caracteres \n aquí cuando llego a este punto, así que cuando solo tengo \n como elemento, entonces debería reemplazarse con '' - cadena vacía.
Si el personaje incluye otras cosas dentro por ejemplo
\n2entonces \n antes o después de un número, entonces debo obtener solo el número y tener solo 2 dentro
¿Cómo puedo reemplazar estos \n personajes?
Use la función replace() de la cadena combinada con la función map() de la matriz. se verá así
arr.map(c => c.replace(/(\n|\t)/gi, ''))La salida será:
[ '', '33', '', '33', '2', '2', '' ]
Si no desea ver cadenas vacías en la matriz, puede filtrarlas con .filter(Boolean)
arr.map(c => c.replace(/(\n|\t)/gi, '')).filter(Boolean)La salida será:
[ '33', '33', '2', '2' ]
Referencia: Aquí
No es una buena práctica hacerlo con el método dividido. Puede usar el método de reemplazo en su lugar.
Aquí hay un ejemplo de lo que quieres hacer:
var someText = "Here's some text.\n It has some line breaks that will be removed \r using Javascript.\r\n"; someText = someText.replace(/(\r\n|\n|\r)/gm,""); console.log(someText);Puede editar su método de reemplazo lo que desea usar en él.
Nota: "/(\r\n|\n|\r)/gm" esta es una expresión regular.
Puede hacer un reemplazo de expresiones regulares en [\t\n]+ para eliminar estos caracteres:
var arr = ['\t', '\n3\t3', '\n\t', '\n3\t3', '\n2\t', '\n\t2', '\n']; var output = arr.map(x => x.replace(/[\t\n]+/g, "")); console.log(output); Tenga en cuenta que si pudiera haber otros caracteres de espacio en blanco que también desee eliminar, simplemente reemplace la expresión regular en \s+ .