2011-09-08 4 views
13

jslint riporta un messaggio Insecure '.'.come riparare jslint message Insecure '.'

alla linea

html = /<body.*?>([\s\S]*)<\/body>/.exec(responseText); 

Come risolvere questo problema?

Aggiornamento

Dopo che il corpo e la staffa prima di chiudere ci possono essere attributi così \ s? non può essere usato Javascript è in esecuzione nel browser, jQuery viene utilizzato. Qual è il modo migliore per estrarre il contenuto dell'elemento del corpo da una stringa invece di questa?

risposta

16

Si può provare qualcosa di simile se si vuole veramente che corrisponda a tutto e non si voglia l'errore jslint.

fondamentalmente indica qualsiasi carattere di parola e qualsiasi carattere non di parole ... che praticamente copre tutto.

+0

Un po 'bizzarro ma proprio quello di cui avevo bisogno. Grazie. – phatmann

+2

Trovo affascinante il fatto che jslint lanci un errore per quella che è un'espressione regolare perfettamente chiara, ma quando offuschi ciò che stai effettivamente facendo è improvvisamente bene. – timgeb

5

Il check in JSLint è lì perché se si consente qualsiasi char (.), o qualsiasi carattere eccetto alcuni specificati ([^x]), è possibile ottenere le partite che non si aspettavano. Se hai attivato questo controllo in JSLint, devi scrivere regex che specificano esplicitamente cosa deve corrispondere.

Se non si desidera disattivare tale controllo e si desidera un LINT privo di errori, determinare cosa si riterrà valido tra la "y" del "corpo" e la parentesi angolare di chiusura, e scrivi la tua espressione regolare in quel modo.

+1

Poiché esiste un solo carattere, direi che '\ s?' Potrebbe essere quello che sta cercando. –

+0

@Py: potrebbero esserci degli attributi nell'elemento body così \ s? non può essere usato Ho aggiornato la domanda. – Andrus

+0

@ JAAulde: Grazie. Voglio estrarre tutto il contenuto all'interno dei tag del corpo. javascript è in esecuzione nel browser, jquery viene utilizzato. Ho aggiornato la domanda. – Andrus

16

È possibile aggiungere regexp: true alle opzioni jsLint. Basta aggiungere una riga al tuo file javascript come:

/*jslint indent: 4, maxerr: 50, vars: true, regexp: true, sloppy: true */