Autor Zpráva
Mufna
Profil
Zdravím Vás. Reguláry nejsou můj koníček (už jsem to tady dneska jednou psal), takže se omlouvám, ale můj dotaz je pro znalce velmi jednoduchý, tak se na to snad někdo mrkne. Chci dát regulární výraz do proměnné, ale nevím, jak to celé mám správně ohraničit (samotný regulár je myslím OK, jde mi o to jeho "ohraničení", pokud je v proměnné).
Samotný regulár:
^[_a-zA-Z0-9_\.\-]+@[_a-zA-Z0-9\.\-]+\.[a-zA-Z]{2,4}$

V proměnné to mám zatím takto (možná je to dobře, nevím):
$regexp = "/^[_a-zA-Z0-9_\.\-]+@[_a-zA-Z0-9\.\-]+\.[a-zA-Z]{2,4}$/";

Celé to pak (jak si jistě znalec všimne) má kontrolovat e-mail - moje funkce (snad OK) vypadá:
function check_email($val)
{
  $val = htmlspecialchars(trim($val));
  $regexp = "/^[_a-zA-Z0-9_\.\-]+@[_a-zA-Z0-9\.\-]+\.[a-zA-Z]{2,4}$/";
  return preg_match($regexp,$val);
}
SwimX
Profil
Mufna:
měl by být v apostrofech ne v uvozovkách, protože takle se ti escapují \. na . a potom až spustíš refulár tak tam bude už jen . čili jakýkoli znak, kdežto v apostrofech se neexcapuje, takže tam zůstane \. a v reguláru se to potom provede dobře
$regexp = '/^[_a-zA-Z0-9_\.\-]+@[_a-zA-Z0-9\.\-]+\.[a-zA-Z]{2,4}$/';

nebo se mýlím? :)
Mufna
Profil
SwimX
Díky
nebo se mýlím? :)
Nevím :-)

Ještě jsem změnil původní dotaz a přidal do něj i moji funkci na kontrolu e-mailu. Můžu se ještě zeptat, zda je ta funkce takto jakž takž OK ?
Majkl578
Profil
tady nekdo neumi pouzit echo na kontrolu spravne zapsaneho retezce... :)
tiso
Profil
Mufna ušetri si prácu: http://php.vrana.cz/kontrola-e-mailove-adresy.php
Mufna
Profil
Majkl578
tady nekdo neumi pouzit echo na kontrolu spravne zapsaneho retezce... :)

Neumí. Jak to myslíš použít echo ? K čemu ? Já to nepotřebuju zobrazovat (někam vypisovat)
AM_
Profil
Mufna
Majkl578 zřejmě myslel si ten regulár vypsat pomocí echo, abys viděl, že ho máš správně oescapovaný.
Mufna
Profil
AM_
regulár vypsat pomocí echo, abys viděl, že ho máš správně oescapovaný

Aha, jasně.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0