Vamos a sugerir que tengo la siguiente cadena:
let cssValue = '20px, 40px'
Deseo obtener la siguiente matriz después de dividir:
cssValue.split(regex); // ['20px', '40px']
Pero si la cadena no contiene comas (solo espacios, es decir, 20px 40px
), el resultado debería ser ['20px 40px']
Mi expresión regular [^a-zA-Z0-9]+
no considera la coma. Con esta expresión regular ['20px', '40px']
independientemente de si la cadena contiene una coma o no. ¿Cómo puedo resolverlo?
Puede dividir por coma y posibles espacios en blanco directamente.
const split = s => s.split(/,\s*/); console.log(split('20px, 40px')); console.log(split('20px 40px'));
Si solo tiene la intención de dividir por coma y eliminar los espacios en blanco iniciales, no necesitará usar una expresión regular, si no lo desea.
La cadena ','
será suficiente, ya que, si desea ordenar cualquier espacio en blanco inicial después, puede usar trim()
.
Ejemplo de trabajo:
let cssValue1 = '20px, 40px'; let cssValue2 = '20px 40px'; const splitCSSValue = (cssValue) => cssValue.split(','); const trimElements = (array) => array.map((element) => element.trim()); console.log(trimElements(splitCSSValue('20px, 40px'))); console.log(trimElements(splitCSSValue('20px 40px')));