2012-09-26 11 views
6

He estado leyendo 'JavaScript: The Good Parts' por Douglas Crockford. En él, aborda brevemente aspectos positivos y negativos, pero no más que una breve declaración de lo que hacen, y el hecho de que no son una buena parte de JavaScript.¿Son malas las miradas negativas de Regex y las negativas (JavaScript)?

Aparte de este libro, no he visto ninguna mención que estos deben evitarse, ya sea en SO o en sitios de guía de expresiones regulares. Me preguntaba si podría obtener más explicaciones sobre por qué estos son una parte mala de JavaScript, y cómo deberían evitarse, si hay una mejor solución o si depende de un mejor diseño de la aplicación.


Extracto (página 75):

búsqueda positiva hacia delante Un grupo de búsqueda positiva hacia delante tiene una (= prefijo es como un grupo que no captura excepto que después de los partidos de grupo, el texto es?. rebobina hasta donde el grupo comenzó , a juego con eficacia nada. Esto no es una buena parte.

búsqueda negativa hacia delante una búsqueda negativa hacia delante grupo tiene un (?! prefijo. Es como un grupo positivo de búsqueda anticipada, excepto que coincide solo si no coincide. Esta no es una buena parte.

Respuesta

4

Muchos de los consejos de Douglas Crockford son sobre "legibilidad" y "comprensibilidad" del código, pero también sobre "comprensibilidad" de las intenciones del codificador. De la misma manera que Douglas no recomienda usar, por ejemplo, dot en una expresión regular, porque esto coincide con cualquier personaje, sin explicar lo que quería hacer coincidir, usar un lookahead negativo equivale a decir "Permitir algo excepto esto". De todos modos, no puedo imaginar por qué no recomendar el uso de lookaheads positivos, pero hay muchas referencias a errores de IE en la implementación anticipada ...

+1

En p. 76, él no tiene ninguna objeción al uso de clases de caracteres negadas ('[^ ...]'). De hecho, él los llama una "conveniencia". –

+0

@ O.R.Mapper interesante. De hecho, esta respuesta carece de muchas fuentes. Espero que algún día tenga tiempo de ver videos de Crockford nuevamente y publicar referencias a los momentos en los que explica las partes malas. Me pregunto si podríamos invocarlo para colaborar en esta cuestión a través de https://plus.google.com/u/0/+DouglasCrockfordEsq/posts –

Cuestiones relacionadas