Ontem, encontrei o problema de combinar duas expressões regulares ao fazer mergeCSS. Também demorou muito. Finalmente, com a ajuda de colegas de CE do CSS Forest Group, concluí essas duas expressões regulares e as gravei. usá-los no futuro chegar.
O primeiro é o problema de correspondência de caminhos de imagem. A string a ser processada é:
A seguir está o conteúdo citado: |
O que escrevi originalmente foi:
A seguir está o conteúdo citado: |
O resultado é:
A seguir está o conteúdo citado: |
Como você pode ver, o resultado de combinar duas imagens em uma não é o que você esperava. Altere para correspondência lenta da seguinte maneira:
A seguir está o conteúdo citado: |
O resultado é:
A seguir está o conteúdo citado: url(demonstração.jpg); |
Duas fotos foram combinadas, que é o resultado desejado. :)
O segundo problema é o uso de variáveis em expressões regulares. Vamos explicar brevemente por que adicionar variáveis também pode ser um problema. Vejamos primeiro a descrição do objeto RegExp e do método replace() . :
A seguir está o conteúdo citado: |
Todo o conteúdo entre "/" será tratado como uma expressão regular, portanto o nome da variável será tratado como uma string. Sem adicionar "/"? Tudo bem, mas se você não adicionar "/", não poderá especificar o modo de correspondência e só poderá corresponder ao primeiro.
A seguir está o conteúdo citado: Um novo objeto RegExp pode ser gerado por meio do objeto RegExp, com o modo e sinalizadores especificados. |
então:
A seguir está o conteúdo citado:
|
O que deve ser observado aqui é usar "\" para escapar, porque
A seguir está o conteúdo citado: Se o padrão de argumento for uma expressão regular em vez de uma string, o construtor RegExp() criará um novo objeto RegExp com o mesmo padrão e sinalizadores do RegExp especificado. |
Durante este processo "\" será convertido em "", ou seja, o resultado acima é:
A seguir está o conteúdo citado:
|