2011-11-30 14 views
10

Sto scrivendo un parser JS e mi sto chiedendo come distinguere tra un'espressione regolare (/lookup/g) e una divisione semplice (bar/baz/g). Quali sono le regole utilizzate da JavaScript per identificare le espressioni regolari?In che modo JavaScript rileva le espressioni regolari?

+1

il precedente '/'? –

risposta

10

Si desidera verificare Section 7.8.5 nelle specifiche ECMA (la versione annotata è aggiornata al momento, ma controllare sempre il latest PDF from the ECMA).

Ricorda anche che un'espressione regolare JavaScript non può essere vuota. // è sempre l'inizio di un commento a riga singola. Vale anche la pena ricordare che un punto e virgola non deve mai essere inserito prima di un regex letterale.

Tangenziale, un vuoto regex JavaScript si presenta come /(?:)/.

Further discussion.

+0

Si noti che la grammatica sembra essere stata leggermente modificata nella [ultima versione] (http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf). –

+0

@AndrewMarshall: vorrei collegare che se fosse in formato HTML - sai se esiste? Grazie. – alex

+0

Sì, è per questo che ho pensato che ti saresti collegato a quella versione. E no, sfortunatamente no. Volevo solo aggiungere il link all'ultima versione per completezza. –

Problemi correlati