Newsgroup: it.comp.lang.javascript
Titolo: le espressioni regolari.

Non riesco a farmele entrare in testa.
Questa espressione /^[a-z0-9]/ verifica che l'inizio riga, quindi il 
primo carattere, sia uno tra a-z e 0-9?
Quindi una roba del genere non e' valida .we mentre lo e' wer232.
Questa espressione /^[a-z0-9]$/ dovrebbe verificare che anche l'ultimo 
carattere sia compreso tra a-z e 0-9?

 carattere sia compreso tra a-z e 0-9?
no, questa dice che "Inizia la stringa, c'è un carattere compreso tra ... e
poi finisce la stringa" (ergo: stringa di 1 carattere)
/^[a-z0-9].*[a-z0-9]$/
(ricorda che è case sensitive (A-Z non è compreso)
-- 
"Voi abili a tenere sempre un piede qua e uno là
 avrete un avvenire certo in questo mondo qua
 però la dignità
 dove l'avete persa?"
									    V.R.

 
ma se volessi verificare che una stringa sia minuscola e contenga ogni 
carattere compreso tra a-z incluso il punto e non contenga spazi nemmeno 
  a fine riga?

   a fine riga?
minuscola lo hai già fatto
per aggiungere il punto basta aggiungerlo: \.
senza spazi: [^\s] (leggiti la reference, oltre a spazi match anche di
altri caratteri tipo tab etc) (ma se usi a-z è già senza spazi ...)
-- 
"Affacciati affacciati benedici, guardaci
 guardaci...guardaci!
 Tanto sono quasi duemila anni che stai a guardare!"
									    E.B.

 (ricorda che č case sensitive (A-Z non č compreso)
Aggiungo che č bene ricordare anche che se la stringa contiene
un carattere di newline, quella regexp cosě com'č fallisce.
Si puň ovviare aggiungendo il flag "m" (dove supportato, credo
ovunque ormai. Ai tempi NS4 non lo supportava, ricordo).
-- 
~ "Non sono solitamente un uomo che prega,
ma se sei lassů, per favore salvami,Superman."
(Homer Simpsons)

 
Beh una stringa di questo tipo "123 123" non mi da errore ed e' quello 
che non voglio proprio perche' c'e' uno spazio all'interno.

 che non voglio proprio perche' c'e' uno spazio all'interno.
Ma le modifiche che ti ha elencato, le hai applicate? Mi sa di no.
-- 
~ "Accadono cose che sono come domande.
Passa un minuto, oppure anni e poi la vita risponde." (A. Baricco)

 
Come ho detto non riesco a farmici entrare in testa queste regex.
Quello che ho fatto e' usare la regex /^[a-z0-9\S]/

 Quello che ho fatto e' usare la regex /^[a-z0-9\S]/
Questo pattern risulta vero su stringhe lunghe almeno un carattere
e che tale carattere sia compreso tra a e z, o 0 e 9, e non sia un
carattere di spazio.
E non mi pare sia ciò che vuoi ottenere tu, giusto? Con le quadre,
tu identifichi un set di caratteri "validi" (o non validi, dipende
dall'uso), ma da applicare sempre a un singolo carattere della tua
stringa. Per farti capire, quest'altra regexp:
	/^[a-z0-9\S]foo/
Matcha una stringa di quattro caratteri. Il primo, deve sottostare
alle regole espresse poc'anzi, e la stringa oltre a quel carattere
deve avere anche "foo" a seguire. Questo pattern invece:
	/^[a-z0-9\S]+$/
Dice che la stringa deve essere composta dal ALMENO un carattere e
che comunque TUTTI i caratteri della stringa devono essere tra a e
z, 0 e 9, e non devono contenere caratteri di spazio.
Il carattere di "+" sta a significare:
"trova l'elemento precedente una o più volte".
-- 
~ Se i miei cattivi pensieri non fossero caricati a salve, ogni giorno
sarebbe una strage.

 z, 0 e 9, e non devono contenere caratteri di spazio.
uhm ... sicuro? \S di per sè non fa match già di a-z0-9 ma anche A-Z e vari
altri caratteri tipo acapo?
-- 
"La realtà è un'illusione causata dall'assenza di alcool."
									      A.

 altri caratteri tipo acapo?
Non ho capito di cosa devo essere "sicuro": non ho realizzato una
regexp "ad hoc" per lui; ma ho semplicemente riportato quella che
aveva scritto analizzandola e aggiungendo, un po' alla volta, dei
caratteri che lo aiutasse a capire la logica delle regexp.
-- 
~ Se il destino è contro di noi, peggio per lui!

 Non ho capito di cosa devo essere "sicuro"
Di quello che hai scritto: "composta da almeno un carattere e ... caratti
della stringa az-09 e non devono contenere spazi". invece secondo me, a
naso, si può rimuovere az09 (incluso in \S), e \S match anche di altri
caratteri oltre a questo (es. A-Z)
-- 
"Ti sei salvato
 o sei entrato in banca pure tu?"
									    A.V.


Ho cercato di fargli "entrare in testa" il meccanismo delle regexp.
-- 
~ Ci siamo fatti una scopata cosi' eccezionale che anche i vicini
hanno fumato una sigaretta.


Si e infatti ora le cose mi sono piu' chiare, grazie per le spiegazioni.
Comunque e' vero, usando solo /^[\S]+$/, come diceva Cristiano, si 
ottiene lo stesso risultato.

 naso, si puņ rimuovere az09 (incluso in \S)
Certo. [a-z0-9] č un sottoinsieme di \S.
La descrizione di ZERO ha una piccola imprecisione. Al posto di:
 ... che tale carattere sia compreso tra a e z, o 0 e 9, 
    e non sia un carattere di spazio
avrebbe dovuto dire
 ... che tale carattere sia compreso tra a e z, o 0 e 9, 
    *oppure* non sia un carattere di spazio
Max

 ottiene lo stesso risultato.
Si, come ti ho scritto, la regexp che avevi scritto tu non forniva il
risultato che volevi ottenere.
-- 
~ Io ho una filosofia semplice:
Riempi ciň che č vuoto. Vuota ciň che č pieno. Gratta ciň che prude.
(A. R. Longworth)