Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: preg mach w domenie
Forum PHP.pl > Forum > PHP
de_gie
Witam mam kod
  1. else if (preg_match('/[^a-z0-9]/', $domain))
i chciałbym żeby była możliwość jeszcze wstawienia tylko znaku - . Tylko tak jak w domenach. Tylko żeby znak - nie mógł pierwszy występować. Czyli dopuszczalnie np. www.dar-car.pl a zabronione np www.-dar.pl. Nie mogę tego ogarnąć proszę o pomoc.
ShadowD
if ( !preg_match('/^(http|ftp)([s]{0,1}):\/\/([a-z0-9]{1})((([a-z0-9-]*[-]{2})|([a-z0-9])*|([a-z0-9-]*[-]{1}[a-z0-9]+))*)((\.[a-z0-9](([a-z0-9-]*[-]{2})|([a-z0-9]*)|([a-z0-9-]*[-]{1}[a-z0-9]+))+)*)(\.([a-z0-9]{2,6})){0,1}((:[0-9]){0}|(:[1-9]{1}[0-9]*))\//iu', $url) )

Cały adres, by nie było za łatwi sam sobie już odnajdź samą domenę. ;-)

Na przyszłość polecam - http://webhosting.pl/15.przydatnych.wyraze...gularnych.w.PHP tutaj znajdziesz inne przykłady.
de_gie
takie szlaczki to ja widziałem ale to nic mi nie mówi co mam z tego wybrać żeby skrypt przyjmował - i nie przyjmował go na początku.
ShadowD
Nie da się poprawnie zapisać tego w 2-3 znaczkach bo jest kilka przypadków o ile się nie mylę ten opisuje wszystkie, wystarczy usunąć kawałek z przodu mówiący o http(s):// i tyłu mówiący o porcie.

Popatrz na to i spróbuj rozszyfrować to jest bardzo proste, a w przyszłości sam będziesz pisać takie "szlaczki".
de_gie
ale ja nie potrzebuje by dokładnie sprawdzał wszelkie przypadki mi chodzi by użytkownik oprócz liter i cyfr mógł użyć -
ShadowD
No tak ale masz opcje:
n.pl
n-n.pl

A musisz wykluczyć:
-n.pl
-.pl
n-.pl

Tak? A tego już nie rozwalisz 1 przypadkiem szczególnie, że .pl też się tyczy tym zasadom, a jeśli do tego dochodzą n.com.pl to masz kolejne opcje. Nawet jeśli chcesz walidować samą nazwę domeny to i tak masz kilka przypadków:
n
n-n
I wykluczyć:
-n
n-

Tak? Jeśli mam rację to i tak sprowadzi się to do użycia operatora "lub" ("|"). A nawet jak się mylę to odpowiedz na pytanie "jak zrobić by się nie zaczynał od -" masz w tym "szlaczku", podpowiem że nie sprawdza on czy jest tam "-" a wymusza użycie poprawnego znaku ZAWSZE na początku - postaraj się to zrozumieć a w przyszłości będzie Ci łatwiej. Nie chcę Cie męczyć a jedynie dać przysłowiową wędkę zamiast ryby.
de_gie
dzięki zrobiłem
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.