Como podemos dividir una matriz de Regex, trato de entender esto:
console.log( 'hello'.split(/([az])/g) ); // returns ['', 'h', '', 'e', '', 'l', '', 'l', '', 'o', '']El retorno debe ser [ 'h', 'e', 'l', 'l', 'o']
¿Cómo podría usar este "sin carácter" en un Regex y lo que representa en informática?
Encuentro esto: espacio sin interrupciones que probé:
let carac = String.fromCharCode(parseInt('202F', 16)); 'hello'.split(carac);Pero no funciona.
console.log( 'hello'.split(/([az])/g) ); // returns ['', 'h', '', 'e', '', 'l', '', 'l', '', 'o', '']El retorno debe ser [ 'h', 'e', 'l', 'l', 'o']
No, no debería. En primer lugar, está optando por usar una sintaxis muy específica ( fuente ):
Si el separador es una expresión regular que contiene paréntesis de captura ( ), los resultados coincidentes se incluyen en la matriz.
Entonces obtienes resultados (cadenas vacías) y separadores (letras). Si omite el paréntesis de captura, solo obtendrá resultados:
console.log( 'hello'.split(/[az]/g) ); Obtener [ 'h', 'e', 'l', 'l', 'o'] significaría que solo obtendrá los separadores. No hay tal sintaxis definida. Para obtenerlos como resultado, debe usar el separador apropiado, que es "ninguno en absoluto" (representado por una cadena vacía):
console.log( 'hello'.split('') ); Por último, pero no menos importante, los espacios de no separación son caracteres regulares como k o 🦄 que puede contener una cadena, siendo su principal peculiaridad que son invisibles. No son abstracciones como parece suponer.