Newsgroup: it.comp.lang.javascript
Titolo: Regular Expression per ATTRIBUTO di tag

Ciao a tutti!
Devo trasformare del codice HTML "accettabile" in codice HTML 
formalmente corretto, poiché Flash lo vuole così e fa storie altrimenti 
(nel senso che ignora bellamente tutto ciò che segue l'errore).
In particolare i tag di FONT devono avere il SIZE compreso tra virgolette:
<font size="3">  Okay
<font size=3> Non Okay
Mi serve quindi una RegExp che mi assista ma mi ci sto perdendo dentro!
Sono arrivato a questo:
(font.[^>]*size=")(\d)(")
ma
1) \d è una cifra del numero... e metterci un * dopo fa solo disastri 
(mi da l'intera stringa di partenza?)
2) questi sono i valori che vanno bene. Per quelli errati non so dove 
sbaglio ma non riesco a farlo funzionare su tutte le occorrenze (si, ho 
attivato l'opzione /gi)
Grazie!
Alex

 ( Vediamo se qualcuno abbocca e ti risponde, ferito nell'orgoglio :-DD )
Guarda, ero tentato di non rispondergli solo per non darti soddisfazione.
:D
-- 
ZER0
~ "Lord Pando è il mio orsacchiotto di pezza.
Si veste di nero, si fa dei tatuaggi in faccia e dice
che è passato al Lato Oscuro, ma secondo me è solo l'adolescenza!"

 <font size=3> Non Okay
Se č solo questo, č semplice:
/(<font\s[^>]*size=)(\d+)/gi
Il problema č se vuoi farlo per ogni attributo di ogni tag, con una sola
regexp la cosa diventa un po' troppo ricorsiva.
 
-- 
ZER0
~ "Lord Pando č il mio orsacchiotto di pezza.
Si veste di nero, si fa dei tatuaggi in faccia e dice
che č passato al Lato Oscuro, ma secondo me č solo l'adolescenza!"

 in quel caso direi che un bel giretto di tidy risolve il problema.
Su Flash? Credo che lui stia sviluppando unicamente in ActionScript.


 Ma non hai resistito, mi dichiaro vincitore ;-PPP
L'ho fatto a prescindere da te, tu mi stavi solo istigando a non farlo :PP


 comportera` bene comunque, ecco perche' quando serve ce lo metto.
Appunto, "quando serve".
Il fatto è che non c'è una regexp giusta in generale. E' tutto da
contestualizzare sul tipo di input che si riceve.
E benché mi pare una banalità, preferisco sottolineare questa cosa, dato
che parrebbe esser nato tutto da questo. :)
-- 
ZER0
~ "Lord Pando è il mio orsacchiotto di pezza.
Si veste di nero, si fa dei tatuaggi in faccia e dice
che è passato al Lato Oscuro, ma secondo me è solo l'adolescenza!"

 il minimo numero di caratteri nell'intervallo".
Certo, e perché potresti volere una cosa del genere? Perché il contesto lo
richiede. Per questo "serve", altrimenti non servirebbe. :)


 Su Flash? Credo che lui stia sviluppando unicamente in ActionScript.
No, è uno pseudo content manager che deve passare del codice HTML a un 
flash che ne fa il "rendering".
La Regexp serve per modifiche "on-the-fly" lato server.
Alex.

 La Regexp serve per modifiche "on-the-fly" lato server.
Scusa, ma allora perché non lo fai filtrare direttamente da tidy o
programmi analoghi? Vai molto piů sul sicuro.


 programmi analoghi? Vai molto piů sul sicuro.
Funziona in ASP? Ho trovato una dll per IIS, ma non ne fa menzione sul 
sito "ufficiale" di tidy...
E comunque Flash ha un html un po' balordo e un po' html3, quindi per 
esempio vuole <b> per il grassetto e <i> per il corsivo (e non <strong> 
o <em>). Oppure i caratteri accentati vanno inviati cosě come sono, 
senza il codice html (per dire, nel sorgente deve apparire "č" e non 
"&egrave;").
Insomma, se vuoi usare un editor creato con javascript (cosě l'utente fa 
tutto via browser) č un macello e cosě mi tocca riparare i danni fatti 
dai vari comportamenti non standard.
Ad ogni modo, grazie per la dritta!
Alex.