( zeller | 2013. 09. 28., szo – 14:53 )

Tényleg nem sok:
-ha nem pontosan öt darab nagybetű-szám karakterből áll, akkor visszadobja, hogy hibás - egy regexp.
Ha pontosan öt hosszú, és csak nagybetűt-számot tartalmaz, akkor szétszeded karakterenként egy tömbbe, a tömböt rendezed:


var s="3ZX2A";
var t=[];
for(i=0; i<=4; i++) { t[i]=s.substr(i,1) }
t=t.sort();

Ha a tömb 2. eleme betű, vagy a 3. eleme szám, akkor hibás a kapott string, továbbá ha végigmész a tömbön, és van benne két azonos érték, akkor is. Ezt már meghagyom a kérdezőnek :-P
Persze a rendezett tömbből lehet stringet csinálni, amire egy jól irányzott regexp is elég :)

Vagy egy másik ötlet, két ciklussal: a külsőben i-vel végigmész 0-től 3-ig, a belsőben meg j-vel i+1-től 4-ig. A belső ciklusban a string i-edik és j-edik karakterét összehasonlítod - ha azonosak, a validáló függvényed hibával visszatér.
A külső ciklusban még megnézed, hogy az i-edik karakter szám-e, ha igen, akkor egy n változó értékét növeled. Ha n értéke nagyobb lesz, mint kettő, szintén visszatérhetsz hibával.
A külső ciklus után még megnézed a string i+1. (utolsó) karakterét, hogy szám-e, ha igen, növelsz egyet az n-en. Ha n értéke nem egyenlő 2-vel, akkor hibával, egyébként meg "rendben"-nel térhet vissza a validáló függvényed.