Versio

URL-regex

Overzicht Reageren

Jesper Diovo

Jesper Diovo

03/11/2010 20:26:55
Quote Anchor link
Hoi allemaal,

Het is voor mij alweer een redelijke tijd geleden dat ik met PHP bezig ben geweest. En mettertijd vervliegt je kennis toch wel, heb ik gemerkt. Helaas, maar toch. Nu ik weer een beetje mijn kennis aan het ophalen ben, probeerde ik een 'regex' (regular expression) te maken om een URL te checken. Echter weet ik totaal niet meer hoe ik die precies moet maken en wat blijkt: hij werkt ook niet.

Ik heb het met de volgende regex geprobeerd:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
#www\.[a-z](1,)\.[a-z](2,)(\.[a-z](2,))?#si

Het enige waar de URL aan hoeft te voldoen is 'www.phphulp.nl'. That's it!

Ik hoop dat iemand me even uit de brand kan helpen, zal vast wel fijn zijn, haha.

Groet,
Jesper
 
PHP hulp

PHP hulp

25/05/2012 17:08:44
Gesponsorde koppelingen:
BHosted Hosting al vanaf € 1,- per maand

Controleer nu gratis jouw domeinnaam:

  
 
Jelmer rrrr

Jelmer rrrr

03/11/2010 20:50:59
Quote Anchor link
Ipv (min,max) moet je {min,max} hebben.

Als je wilt dat hij alleen "www.phphulp.nl" matcht, en niet "blablawww.phphulp.nlmop" moet je je pattern beginnen met ^ en eindigen met $, om het begin en eind aan te geven.

{1,} is "match één keer of vaker". Daar kan je ook + voor gebruiken.

(blabal) gebruik je om een match te onthouden. Als je alleen maar wilt groeperen, kan je ook (?:blabla) gebruiken. Dus als je wilt dat de tld (.nl in dit geval) optioneel wordt (dat wil je?, want ? betekent "match null of één keer") dan kan je schrijven (?:\.[a-z]{2,})?

#^www\.[a-z]{2,}(?:\.[a-z]{2,})?$#i
matcht:
www.phphulp.nl
www.phphulp

Ik neem aan dat je weet dat lang niet alle geldige urls aan die expressie voldoen, maar daar vroeg je ook niet om :)
 
Jesper Diovo

Jesper Diovo

03/11/2010 21:06:31
Quote Anchor link
Nee dat tweede deel "(\.[a-z](2,))?" is om eventueel een tweede deel (zoals bij .co.uk) ook toe te laten ;). Ik weet niet of je daar ook nog iets voor hebt?

Edit: Deze gebruik ik nu en werkt!
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
#^www\.([a-z]{1,})\.([a-z|\.]{1,})$#si

Ik hoop dat hij ook voldoet en dat ik er niet gekke deuren mee heb open gezet? :)
Gewijzigd op 03/11/2010 21:16:16 door Jesper Diovo
 
Jelmer rrrr

Jelmer rrrr

03/11/2010 22:42:48
Quote Anchor link
Probeer eens "www.phphulp.nl.co.uk...taart". Dat werkt nu ook :P

Wat dacht je van deze:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
#^www\.[a-z]+(\.[a-z]+){1,2}$#si

de URL moet beginnen met www.[a-z], en mag vervolgens 1 of 2 tlds hebben. Werkt op
www.phphulp.nl
www.cnn.co.uk
en niet op
www.subdomain.cnn.co.uk
(wel weer op www.subdomain.cnn.co)
 



Overzicht Reageren

Get Adobe Flash player