2011-11-30 9 views
10

Estoy escribiendo un analizador JS, y me pregunto cómo diferenciar entre una expresión regular (/lookup/g) y una división simple (bar/baz/g). ¿Cuáles son las reglas que usa JavaScript para identificar expresiones regulares?¿Cómo detecta JavaScript las expresiones regulares?

+1

el '/' anterior? –

Respuesta

10

Desea verificar Section 7.8.5 en la especificación ECMA (la versión anotada es actualmente actual, pero siempre verifique latest PDF from the ECMA).

Recuerde también que una expresión regular JavaScript no puede estar vacía. // es siempre el comienzo de un comentario de una sola línea. También vale la pena mencionar que un punto y coma nunca debe insertarse antes de un literal de expresión regular.

Tangencial, un vacío El JavaScript regex se parece a /(?:)/.

Further discussion.

+0

Tenga en cuenta que la gramática parece haber cambiado un poco en la [última versión] (http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf). –

+0

@AndrewMarshall: Me gustaría vincular eso si estuviera en formato HTML, ¿sabes si existe? Gracias. – alex

+0

Sí, es por eso que pensé que habías vinculado a esa versión en su lugar. Y no, no, desafortunadamente. Solo quería agregar el enlace a la última versión por completo. –

Cuestiones relacionadas