Ayer, encontré el problema de hacer coincidir dos expresiones regulares al hacer mergeCSS. Finalmente, con la ayuda de los compañeros de CE en CSS Forest Group, completé estas dos expresiones regulares y las registré especialmente. usarlos en el futuro.
El primero es el problema de hacer coincidir las rutas de las imágenes. La cadena a procesar es:
El siguiente es el contenido citado: |
Lo que escribí originalmente fue:
El siguiente es el contenido citado: |
El resultado es:
El siguiente es el contenido citado: |
Como puedes ver, el resultado de unir dos imágenes en una no es el que esperabas. Cámbielo a coincidencia diferida de la siguiente manera:
El siguiente es el contenido citado: |
El resultado es:
El siguiente es el contenido citado: URL (demostración.jpg); |
Se combinaron dos imágenes, que es el resultado deseado. :)
El segundo problema es el uso de variables en expresiones regulares. Expliquemos brevemente por qué agregar variables también puede ser un problema. Veamos primero la descripción del objeto RegExp y el método replace() . :
El siguiente es el contenido citado: |
Todo el contenido entre "/" se tratará como una expresión regular, por lo que el nombre de la variable se tratará como una cadena. ¿Sin agregar "/"? Está bien, pero si no agrega "/", no podrá especificar el modo de coincidencia y solo podrá hacer coincidir el primero.
El siguiente es el contenido citado: Se puede generar un nuevo objeto RegExp a través del objeto RegExp, con el modo y los indicadores especificados. |
entonces:
El siguiente es el contenido citado:
|
Lo que se debe tener en cuenta aquí es usar "\" para escapar, porque
El siguiente es el contenido citado: Si el patrón de argumento es una expresión regular en lugar de una cadena, el constructor RegExp() crea un nuevo objeto RegExp con el mismo patrón y banderas que el RegExp especificado. |
Durante este proceso "\" se convertirá en "", es decir, el resultado anterior es:
El siguiente es el contenido citado:
|