jet, forse la cosa si puo' semplificare parecchio, se il controllo oggetto del thread lo fai lato server, e lato client, prima, controlli il resto (se ho ben capito, ogni carattere dei 3 deve esserci una sola volta).
In sunto, (da un vecchio esempio vb di Mr.Webmaster), per controllare il numero di occorrenze di un carattere in una stringa ne usavo fare la Split passando a questa il carattere da controllare, e poi con l'UpperBound dell'array risultante ricavavo il numero di occorrenze.
Lo spezzettamento è superiore di 1 al risultato, ma l'Upperbound è zero-based, quindi ti dà esattamente il numero di occorrenze.
Ti ho tradotto la funzione in C# adattandola ad i tuoi esempi; puo' sembrare una pescionata ma funziona bene.
Lo so, vuoi una dinamica da Validator lato client, ma se proprio non ci riesci adotta una soluzione mista come ultima spiaggia
codice:protected void Page_Load(object sender, EventArgs e) { string stringaDaControllare = "filippo@000@##000fili&&&ppo"; // 2 chiocciole, 2 cancelletti e 3 and int occorrenze_chiocciola = occorrenze(stringaDaControllare, '@'); // 2 int occorrenze_cancelletto = occorrenze(stringaDaControllare, '#'); // 2 int occorrenze_and = occorrenze(stringaDaControllare, '&'); // 3 if (occorrenze_chiocciola+occorrenze_cancelletto+occorrenze_and > 3) { Response.Write("C'è un problema, Roger."); } else { Response.Write("Tutto ok, Roger."); } } public int occorrenze(string str1, char str2) { string[] strArray = str1.Split(str2); return strArray.GetUpperBound(0); }


Rispondi quotando