Newsgroup: it.comp.lang.javascript
Titolo: Espressione regolare ? Cercare tutti i numeri

Non so che strada prendere, vorrei modificare tutti i numeri che 
appaiono in una pagina web , tipo cliccando  un bottone
vengono colorati tutti di rosso
è possibile farlo in JS, non voglio che mi fate una
funzione perchè vorrei arrivarci da me, basta che
qualcuno mi spieghi cosa debbo prendere in considerazione.
Vi ringrazio
Livio

livio ha scritto:

Bene, se non vuoi la risposta pronta non te la riporto (anche io sono
della scuola meglio imparare che copiare ;o) ).
Dunque, innanzitutto hai già capito che ti servono le regexp, qui trovi
tutto ciò che ti occorre:
http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Global_Objects:RegExp
Conta che devi prendere il testo della pagina (sai come?) e applicare un
pattern molto semplice attraverso un particolare metodo (e usare un
attributo, altrimenti ti si fermerà alla prima occorrenza trovata). La
regexp è veramente basilare, devi solo fare attenzione a come creare un
riferimento (all'interno del pattern) che sia sfruttabile all'esterno.
Per esempio tu dovresti sostituire 3 con <span style="color:red;">3</span>
e poi 5 con <span style="color:red;">5</span> e quindi la regexp deve
creare un riferimento con l'occorrenza trovata (il numero) e inserirla
all'interno del tag <span>.
PS: la regexp potrebbe generarti un codice simile:
Colombo scoprì l'America nel <span style="color:red;">1</span><span
style="color:red;">9</span><span style="color:red;">8</span><span
style="color:red;">2</span>. Per fare le cose per bene potresti complicare
il pattern e ottenere un <span style="color:red;">1982</span>, ma magari
per l'utilizzo che devi fare non ti creerebbe problemi la prima soluzione
(meno elegante ma più sbrigativa).
Sono stato chiaro?
-- 
Luke S.
- may the study be with you -
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

(meno elegante ma più sbrigativa).
alert(parseInt("pippo")*2); ---> Nan
alert(parseInt("1000")*2);  ---> 2000
--
mg

Marco Guiducci ha scritto:


Non ti seguo e quindi? Cosa c'entra?
-- 
Luke S.


 regexp è veramente basilare
E mica tanto... premesso che non ho ancora studiato le regex (sic!), il
problema sorge rispetto alle seguenti situazioni:
- il testo dove cercare i numeri contiene codice html, quindi con dei tag e
i relativi attributi i cui valori possono contenere numeri che non devono
essere "colorati"
- nel testo esistono delle entities (es. &#8220;) contenenti dei numeri che
non vanno colorati
-- 
Nando [?]
Ex-Apostolo della Ex-Prova

 non vanno colorati
Le entities possono essere evitate. Dalla reference:
[^xyz]
A negated or complemented character set. That is, it matches anything that
is not enclosed in the brackets. You can specify a range of characters by
using a hyphen.
For example, [^abc] is the same as [^a-c]. They initially match 'r' in
"brisket" and 'h' in "chop." 
-- 
Luke S.


 [^xyz]
Ecco... l'avevo detto che non le regex non le conosco :)
Questa cosa della "negazione" la sapevo... ma, non essendo ben preparato,
ho delle difficoltà di associazione tra il problema e il possibile
strumento per risolverlo.


 strumento per risolverlo.
Zer0 docet: pensa prima a come fare una cosa, poi a come applicare le
soluzioni trovate al linguaggio che utilizzi.


 soluzioni trovate al linguaggio che utilizzi.
Se però non conosci gli strumenti di un linguaggio, rischi di implementare
un algoritmo, magari complicatissimo, con una infinità di codice... mentre
potevi ottenere il medesimo risultato con un'unica istruzione: magari hai
fatto un'ottima analisi che, però, era inutile :)


 fatto un'ottima analisi che, perņ, era inutile :)
Partendo dal presupposto che ti ho scritto prima, mentre studi la logica
dell'applicazione se vedi che ti serve chissą quale algoritmo, magari ti
conviene fermarti e dare un'occhiata in giro.
Comunque trovo molto utile pensare un'applicazione a priori e poi
applicarla al linguaggio.


 applicarla al linguaggio.
E anche su questo mi trovi pienamente d'accordo... qualche base teorica in
ambito informatico ce l'ho :)
