Gå til innhold

regulære uttrykk, sjekke om input er url


Anbefalte innlegg

Hei

jeg har forsøkt å lese litt om regulære uttrykk, men mesteparten er litt gresk for meg, kan en si.

 

Jeg har laget dette mønsteret: /^http:\/\/\w+$/

 

Og jeg tror jeg sier at "hvis input starter (^) på http:// og etterfølges av bokstaver, en til mange og slutter på bokstaver" så har jeg en match.

 

Men det funker ikke. Alle lenkene mine blir mailto-lenker:/

 

if(preg_match("/^http:\/\/\w+$/", $result['url'])){
 	$link = "<a href=\"{$result['url']}\">{$result['name']}</a>";
 }else if(strcmp($result['url'], "")==0){
 	$link = "";
 }else{
 	$link = "<a href=\"mailto:{$result['url']}\">{$result['name']}</a>";
 	
}

Lenke til kommentar
Videoannonse
Annonse

\w A single word character - alphanumeric and underscore.

 

\w tar altså bare alfanumeriske karakterer, og vil ikke fungere på f.eks. www.vg.no, siden denne adressen inneholder punktum. Så om du bytter ut \w med noe som inkluderer punktum, bør uttrykket ditt fungere.

Lenke til kommentar
\w A single word character - alphanumeric and underscore.

 

\w tar altså bare alfanumeriske karakterer, og vil ikke fungere på f.eks. www.vg.no, siden denne adressen inneholder punktum. Så om du bytter ut \w med noe som inkluderer punktum, bør uttrykket ditt fungere.

7268744[/snapback]

 

Hmm, ja- det var jammen ikke lett :(

 

Men du satte meg vel inn på riktig spor. En url inneholder mye mer enn bare bokstaver (eks / og . og _ og ~)

Lenke til kommentar

Hvis jeg ikke tar helt feil så sjekker den bare den første delen, alstå https://www.diskusjon.no/index.php?showtopic=663144 av urlen.

 

Også, hvis jeg ikke tar helt feil, så tillater den ikke små bokstaver, heller ikke url's som inneholder åæø. Heller ikke url's som http://username:password@hostname/ eller ip adresser eller http://localhost

 

men, jeg tar ofte feil også... :ermm:

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...