/ Forside / Teknologi / Udvikling / Java Scripts / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java Scripts
#NavnPoint
molokyle 5410
Klaudi 2799
smorch 2439
kim 1360
Harlekin 1134
bentjuul 984
gibson 800
severino 695
Random 675
10  konsulent.. 626
RegExp : validere at streng indeholder båd~
Fra : Jesper Stocholm


Dato : 26-11-02 22:14

Jeg har behov for at checke, at en streng skal være på mindst 6 tegn samt
indeholde både bogstaver og tal. Det vil jeg gerne bruge RegExp og
JavaScript til. Hvordan gør jeg det ? Antal tegn er ikke svært - men jeg
har svært ved at gennemskue, hvordan jeg skal checke det andet.



--
Jesper Stocholm
http://stocholm.dk
Ny FAQ for dk.edb.internet.webdesign.serverside.asp
se http://asp-faq.dk

 
 
Lasse Reichstein Nie~ (26-11-2002)
Kommentar
Fra : Lasse Reichstein Nie~


Dato : 26-11-02 22:38

Jesper Stocholm <jespers@stocholm.invalid> writes:

> Jeg har behov for at checke, at en streng skal være på mindst 6 tegn samt
> indeholde både bogstaver og tal. Det vil jeg gerne bruge RegExp og
> JavaScript til. Hvordan gør jeg det ? Antal tegn er ikke svært - men jeg
> har svært ved at gennemskue, hvordan jeg skal checke det andet.

hvad med noget i stil med:

function checkPasswd(passwd) {
var i;
var letter=0;
var digit=0;
for(i=0;i<passwd.length;i++)
{
var c=passwd.charAt(i);
if ((c >= 'a' && c<='z') || (c>='A' && c<='Z')) letter++;
if ((c >= '0' && c<='9') digit ++;
}
return (passwd.length>=6 && digit>=2 && letter>=2)
}

Det bruger ikke regexp, men så sjove er regexper heller ikke :)

En regexp for to eller flere bogstaver kunne være
/.*[a-zA-Z].*[a-zA-Z].*/
og lignende for cifre. Det er nemmere at tjekke to gange, end
at lave en enkelt regexp der matcher både to bogstaver *og* to
cifre på en gang.

/L
--
Lasse Reichstein Nielsen - lrn@hotpop.com
'Faith without judgement merely degrades the spirit divine.'

Jesper Stocholm (26-11-2002)
Kommentar
Fra : Jesper Stocholm


Dato : 26-11-02 22:53

Lasse Reichstein Nielsen wrote :

> Jesper Stocholm <jespers@stocholm.invalid> writes:
>
>> Jeg har behov for at checke, at en streng skal være på mindst 6 tegn
>> samt indeholde både bogstaver og tal.
>
> function checkPasswd(passwd) {
> var i;
> var letter=0;
> var digit=0;
> for(i=0;i<passwd.length;i++)
> {
> var c=passwd.charAt(i);
> if ((c >= 'a' && c<='z') || (c>='A' && c<='Z')) letter++;
> if ((c >= '0' && c<='9') digit ++;
> }
> return (passwd.length>=6 && digit>=2 && letter>=2)
> }
>
> Det bruger ikke regexp, men så sjove er regexper heller ikke :)

synes du ikke ?



> En regexp for to eller flere bogstaver kunne være
> /.*[a-zA-Z].*[a-zA-Z].*/

ok ... :) ... ved du også hvor jeg kan finde en liste over, hvad de
enkelte operatorer betyder - dvs fx *, ? etc ? Jeg har en liggende over
RegExp ifb VBScript, men den er ikke helt som JavaScript.


--
Jesper Stocholm
http://stocholm.dk
Ny FAQ for dk.edb.internet.webdesign.serverside.asp
se http://asp-faq.dk

Lasse Reichstein Nie~ (26-11-2002)
Kommentar
Fra : Lasse Reichstein Nie~


Dato : 26-11-02 23:17

Jesper Stocholm <jespers@stocholm.invalid> writes:

> ok ... :) ... ved du også hvor jeg kan finde en liste over, hvad de
> enkelte operatorer betyder - dvs fx *, ? etc ? Jeg har en liggende over
> RegExp ifb VBScript, men den er ikke helt som JavaScript.

Jeg har et link til Ecma-262-standarden:
<URL:ftp://ftp.ecma.ch/ecma-st/Ecma-262.pdf>
Regexp-objekter og syntaks er vist skrevet omkring afsnit 15.10.

Jeg læste den ikke i detaljer, men skrev bare noget der ville virke i
alle de regexp-engines jeg ellers kender (Perl, Awk, elisp, ...). :)

Det ser nu ud til at jeg havde ret. En regexp-literal skrives med /'er
omkring, så man kan skrive fx
/.*[0-9].*[0-9].*/.test(passwd)
for at teste om der er mindst to cifre i password.

Pointen at det er nemmer at teste to gange end at lave et samlet
regexp holder stadig. Det er en indsigtsgivende opgave forsøge at
lave en kort regexp der tester for to ting på en gang :)

/L
--
Lasse Reichstein Nielsen - lrn@hotpop.com
'Faith without judgement merely degrades the spirit divine.'

Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408941
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste