Presentasjon lastes. Vennligst vent

Presentasjon lastes. Vennligst vent

Stringmanipulasjon, RegEx og validering

Liknende presentasjoner


Presentasjon om: "Stringmanipulasjon, RegEx og validering"— Utskrift av presentasjonen:

1 Stringmanipulasjon, RegEx og validering
Web-programmering Stringmanipulasjon, RegEx og validering

2 I dag Strengmanipulering RegEx Validering Kodegjennomgang
Oppgaveløsning på lab.

3 Innebygde stringfunksjoner
$antall_tegn = strlen($tekst); $antall_ord = str_word_count($tekst); $antall_ord_dag = substr_count($tekst,"dag"); $smaa_bokstaver = strtolower($tekst); $store_bokstaver = strtoupper($tekst); $baklengs = strrev($tekst); $lengde = strlen($tekst);

4 Innebygde stringfunksjoner forts
$tall = strcasecmp($tekst1,$tekst2); Sammenligner tekst1 og tekst2 ikke case sensitivt. Returnerer 0 dersom de er like. Eks: $e-post1 = $e-post2 = ” ”; if(!strcasecmp($e-post1,$epost-2) { echo ”Samme epostadresse!”; }

5 Innebygde stringfunksjoner forts
$tekst = nl2br ($tekst); Konverterer \n til <br/>. Brukes når f.eks en fil skal vises på skjermen. Eks: $tekst = ”Dette er første linje\n\r Dette er andre linje”; $resTekst = nl2br($tekst); Dette er første linje<br/>Dette er andre linje

6 Innebygde stringfunksjoner forts
$tekst = strip_tags ($tekst); Tar vekk evt. HTML tag’er i en tekst. Eks: $tekst = ”E-post:<a $restekst =strip_tags($tekst); echo $restekst; E-post:

7 Innebygde stringfunksjoner forts
$posisjontekst = strpos ($høystakk, $nål); Finner posisjonen i strengen $høystakk der $nål starter. Returnerer FALSE dersom $nål ikke finnes. (Case sensitivt!) Eks: $tekst = ”E-post:<a $pos =strpos($tekst,”Href”); echo $pos; 10

8 Innebygde stringfunksjoner forts
$tekst = str_replace ($subTekst,$subTekstTil,$tekst); Bytter $subTekst med $subTekstTil i $tekst dersom denne finnes. Eks: $tekst = ”E-post:<a $resTekst echo $resTekst; Ikke helt riktig da html-tagene ikke vil vises E-post:<a Href=’2.php’>per(a)hio.no<a/>

9 Innebygde stringfunksjoner forts
$tekst = strstr ($høystakk, $nål); Returnerer resten av høystakken fra nålen. Eks: $tekst = ”E-post:<a $resTekst echo $resTekst; @hio.no<a/> Ikke helt riktig da html-tagene ikke vil vises

10 Innebygde stringfunksjoner forts
$tekst = substr ($tekst, $start,$lengde); Returnerer resten av $tekst fra startposisjonen $start. $lengde kan sløyfes. Eks: $tekst = ”E-post:<a $resTekst =substr($tekst,23,10); echo $resTekst;

11 Validering Må sikre at det som skrives inn i HTML skjema gir mening
F.eks En alder er større enn null Et telefonnr består bare av tall At det er skrevet noe inn i obligatoriske felt At et kredittkortnr er gyldig At et navn-felt har maks 20 tegn At et postnr består av 4 siffer

12 Validering forts. Validering bør skje både på kilent og server
Server-validering gjøres i PHP Klient-validering i Java script (tas senere) For å sjekke om et felt inneholder noe : if ($_REQUEST[”navn”]==””) { echo ”Navn må oppgis”; }

13 Validering med RegEx For å sjekke at navnet bare inneholder bokstaver og er maks 20 tegn $navn = "Per Hansen"; if(!preg_match(”/^[a-åA-Å ]{2,20}$/",$navn)) { echo "Navnet er mellom 2 og 20 tegn og inneholder store og små bokstaver i tillegg til mellomrom"; } else echo "Navnet er feil"; Funksjonen ereg kommer til å fases ut av PHP, bruk denne med forsiktighet

14 RegEx Bruk funksjonen preg_match(”/regex/”,$tekst);
ereg(”regex”,$tekst) Bruk funksjonen preg_match(”/regex/”,$tekst); Returnerer true/false Regex-tegn eks: ^ Start på streng $ Stopp streng [123] Tillat 1 eller 2 eller 3 [1-9] Tillat alle tall mellom 1 og 9 [abAB] Tilllat a eller b eller A eller B [ab][12] Tillat a eller b som første tegn, 1 eller 2 som andre

15 RegEx forts. /^[1-9][a-å][A-Å]$/ Tre tegn, første 1-9, andre a-å, tredje A-Å /^[1-9a-åA-Å]$/ Ett tegn 1-9 eller a-å eller A-Å /^[1-9a-åA-Å]{5}$/ 5 tegn, vert av dem 1-9 eller a-å eller A-Å /^[1-9a-åA-Å]{2,20}$/ Mellom 2 og 20 tegn (som over) /^[1-9a-åA-Å .]{2,20}$/ Som over inkludert mellomrom og punkt /^[0-9]{4}$/ Norsk postnr /^[0-9]{8}$/ Norsk telefonnr /^[+][4][7][0-9]{8}$/ Norsk telefonnr med + 47 foran Epostadresse /^((4\d{3})|(5[1-5]\d{2})|(6011))-?\d{4}-?\d{4}-?\d{4}|3[4,7][\d\s-]{15}$/ Kredittkort Søk deg frem på nettet til mere komplekse RegEx Feks: Ett antall ganger


Laste ned ppt "Stringmanipulasjon, RegEx og validering"

Liknende presentasjoner


Annonser fra Google