Avatar billede elledinho Nybegynder
28. december 2008 - 23:38 Der er 8 kommentarer

Regulær udtryk

Hey eksperter...
Kan en af jer fortælle mig, hvordan mit reg-udtryk skal se ud, hvis den skal matche bestemmelserne:
- Der skal være både tal og bogstaver i
- Det er vigtigst, at man må starte med bogstaver eller tal.

Tusinde tak på forehånd =)
Avatar billede arne_v Ekspert
28. december 2008 - 23:45 #1
Hvis strengen matcher begge:

[A-Za-z0-9]*[0-9][A-Za-z0-9]*
[A-Za-z0-9]*[A-Za-z][A-Za-z0-9]*

så vil den indeholde kun bogstaver og tal - og mindst et af hvert.
Avatar billede elledinho Nybegynder
29. december 2008 - 00:16 #2
Den må jeg have en gang til...

Jeg vil gerne have den i en if(preg_match('', $password))
$password må indeholde a-zA-Z0-9. Og igen, det er meget vigtigt, at det er ligemeget, hvad der kommer først. Den skal meget simpelt bare finde ud af, om $password har tal og bogstaver :-)
Avatar billede arne_v Ekspert
29. december 2008 - 00:21 #3
Hvis du kun vil sikre dig at password kun indeholder bogstaver og tal, så er
[A-Za-z0-9]+ nok.

Jeg forstod dit spørgsmål sådan at der skulle være mindst et af hvert.
Avatar billede arne_v Ekspert
29. december 2008 - 00:22 #4
så prøv med:

if(preg_match('/[A-Za-z0-9]+/', $password)) {
Avatar billede elledinho Nybegynder
29. december 2008 - 00:34 #5
Så undskyld, at jeg omformuleret mig på en tvivlsom måde :-)
Du forstod min pointe i første omgang. Men jeg vil gerne have et disse eksempler (f.eks) bliver godkendt:
abCdE32
-D2nD35
da"3_'#

Som du ser er det ligegyldigt HVOR bogstaver er og hvor tallet er (begyndelse/slutning) - Det er sådan jeg vil have det. De bliver godkendt fordi de har mindst ét bogstav og ét tal :-)
Avatar billede arne_v Ekspert
29. december 2008 - 00:49 #6
Til inspiration:

<?php
function check($s) {
    return preg_match('/[A-Za-z]+/', $s) && preg_match('/[0-9]+/', $s); 
}

function test($s) {
    echo $s . ':' . (check($s) ? 'OK' : 'Error') . '<br>';
}

test('abCdE32');
test('-D2nD35');
test('da"3_\'#');
test('***');
test('');
?>
Avatar billede elledinho Nybegynder
29. december 2008 - 15:07 #7
ah ok. 2 preg_match =)
Jeg brugte kun 1... nok derfor det ikke virkede ordenligt :-P

Men tag for hjælpen. Du får pointene :-)
Avatar billede arne_v Ekspert
29. december 2008 - 15:14 #8
Hvis du absolut vil have 1 udtryk så prøv:

function check($s) {
    return preg_match('/([A-Za-z]+.*[0-9]+)|([0-9]+.*[A-Za-z]+)/', $s);
}

Men jeg synes at det er mere læseligt med de to.

Og svar.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester