Tengo una aplicación React donde necesito dividir la entrada del usuario (cadena) por coma o salto de línea para luego mapearlos como una lista. Cada uno funciona individualmente, pero cuando tengo 2 ejemplos diferentes en la página, solo uno de ellos funciona y el otro se lee como una cadena. La entrada puede verse como:
one, two, three
o como:
one two threeHe intentado:
const foo = ((',') || (/[\r\n]+/)); .split(foo)Pero solo uno de ellos funciona entonces.
.split(',') funciona y .split('\n') también funciona (así como expresiones regulares más complejas como (/[\r\n]+/) .
¿Cómo agrego que debe ser una coma o un salto de línea (tanto para Windows como para Unix) para dividir?
¡Ayuda muy apreciada!
const str1 = 'one, two, three'; const str2 = `foo bar baz`; const str3 = `1,2,3 a,b,c foo,bar,baz`; const re = /, ?|\n/gm; // ^ matches a comma (`,`) // ^^ optionally followed by a space (` ?`) [remove this bit, if you do not need it] // ^ OR (`|`) // ^^ a new line (`\n`) // test console.log(str1.split(re)); console.log(str2.split(re)); console.log(str3.split(re));Probar
const a = `uno, dos,
tres`
a.split(/[\s,]/g).filter(cadena => Boolean(cadena))