Avatar billede Slettet bruger
02. november 2005 - 19:09 Der er 9 kommentarer og
1 løsning

Funktion der validerer data via reg. exp.

X Hej

Er der en der vil lave en lille valideringsfunktion for mig?

Den skal ikke være videre avanceret (for en der er vant til at arbejde med Reg.Exp.), men alligevel for avanceret til mine evner.

Funktionen skal kunne validere en streng ud fra tegn gemt i en anden streng, samt et par ekstra "indstillinger":

Altså noget lignende:
$tilladt = ("0123456789abcdef");
// 1=ligegyldig med store eller små bogstaver
$options = 1
$streng_der_skal_checkes = "FF1569";

$result = valider($tilladt,$options,$streng_der_skal_checkes)
$result kan så være lig "0" eller "1" afhængig af resultatet.

/Karsten
Avatar billede hmortensen Nybegynder
02. november 2005 - 19:34 #1
Måske sådan her:
function valider($allowed, $case, $str)
{
    if ($case == 1)
    {
        $allowed = strtolower($allowed);
        $str = strtolower($str);
    }
    for ($x = 0; $x < strlen($str); $x++)
    {
        if (strpos($allowed, $str[$x]) === false)
        {
            return false;
        }
    }
    return true;
}

Der returneres true/false istedet for 0/1.
Avatar billede erikjacobsen Ekspert
02. november 2005 - 19:35 #2
if (preg_match('/^['.preg_quote($tilladt).']+$/i',$streng)) {
  print "ok";
}
Avatar billede Slettet bruger
02. november 2005 - 19:45 #3
hmortensen...> Løsningen fungerer, men det er da en omstændig løsning såfremt man har mange værdier der skal valideres.

erikjacobsen...> Det fungerer næsten. Det kunne jo være jeg også gerne ville have nogle tegn med som f.eks. '/' og '\' og forskellige gnyffer ("'´`). Det fungerer ikke.
Avatar billede erikjacobsen Ekspert
02. november 2005 - 19:56 #4
Du har ret med /. Det kan klares med

if (preg_match('/^['.preg_quote($tilladt,'/').']+$/i',$streng)) {
  print "ok";
}

men der er faktisk flere. Det bliver lidt bøvlet...
Avatar billede Slettet bruger
02. november 2005 - 20:03 #5
Okay, de skal defineres enkeltvis? Surt.

Jeg tror nu også, at 9 ud af 10 gange, har jeg brug for at kontrollere at en variabel kun indeholder:
Validering 1: Alle bogstaver i det danske alfabet + tal
Validering 2: Samme som i validering 1 samt alle specialtegn (også skråstreger, backslash, gåseøjn og andre "besværlige" tegn.)
Kan du hjælpe mig med 2 udtryk der kan løse disse?

Den nederste er til validering af længere tekstbeskeder. Jeg ville selv være træt af hvis ikke det var muligt at bruge specialtegn.
Avatar billede Slettet bruger
02. november 2005 - 20:09 #6
Sørens er nødt til at logge for i aften.
Kigger forbi i morgen tidlig.
Avatar billede erikjacobsen Ekspert
02. november 2005 - 20:17 #7
Du kan jo altid bruge noget i retning af  hmortensens  løsning.
Avatar billede Slettet bruger
04. november 2005 - 08:00 #8
Jeg endte med at bruge følgende:
Validering 1: erikjacobsen's kommentar 02/11-2005 19:35:35
Validering 2: Ingen validering, idet alle tegn er tilladt.

erikjacobsen...> Læg et svar og der er point på vej.
Avatar billede erikjacobsen Ekspert
04. november 2005 - 09:37 #9
Jeg samler slet ikke på point, tak.
Avatar billede Slettet bruger
07. november 2005 - 08:15 #10
erikjacobsen...> Tak for hjælpen så, og lidt positiv karma på vej :o)
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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