/_ Raksti //
Regular Expression
Diggot! Saveidojis
BlackHalt šādā datumā: [ Sestdiena, 2004. gada 17. janvāris , 09:58:13 ]
Ir dzirdēts tāds zvērs kā eregi_replace()? he he... Tā teikt apgūstam kopā :)Tā kā es te cīnos ar pašiebraukšanu un šīs procedūras izgaismošanu - izlatviskošanu sev un citiem tad šeit būs kāds e-pasta noteikšanas skripts un tā mans apraksts. Sist aizliegts! :)
Tas viss kopā top...
piemērs e-pasta noteikšanā:
kods:
<?php
if (eregi("^([a-z]|[0-9]|\.|-|_)+@([a-z]|[0-9]|\.|-|_)+\.([a-z]|[0-9]){2,3}$",$email) &&
!eregi("(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)",$email)){
}
else{
$email = false;
}
?>// Tā, augstāk minētais kods nosaka vai e-pasts ir epasts ;)
// tā kā eregi ir reģistrnejūtīgs tad 'A' būs arī 'a'
// pirmais nosacījums: ^([a-z]|[0-9]|\.|-|_) paredz,
// lai $email sāktos "^" ar alfabēta simboliem "[a-z]" vai "|" cipariem "[0-9]"
// vai "|" punktu \. vai "|" mīnuszīmes simbolu "-" vai "|" apakšsvītru "_" un šis nosacījums beidzas ar ")"
// bet kopējais lielais eregi nosacījums šajā paternā paredz vēl pāris apakšnosacījumu,
// kuri ietverti "()" :))
// tik tālu tiekam līdz $email = "mans-pasts"
// tātad seko otrais nosacījums, bet pa starpu tiem ir "+@" ,
// kas paredz ka pēc pirmā nosacijuma ir jāseko konkrētam simbolam "@" uhhh;)
// tiekam piemēram līdz $email = "mans-pasts@"
// un tad tik "ieslēdzas" tas otrais nosacījums: ([a-z]|[0-9]|\.|-|_) , kas paredz to pašu ko pirmais
// simbola "^" nav jo tas tak vienkārši ir loģiski, citādi paterns nedarbosies ;)
// tiekam līdz $email = "mans-pasts@mansdomens"
// seko "+" kas paredz, ka aiz pirmajiem diviem nosacījumiem jāseko punktam "\."
// tā tiekam līdz $email = "mans-pasts@mansdomens." unpunkts ;)
// seko trešais pedējais apakšnosacījums: ([a-z]|[0-9]){2,3}$ , kurš paredz,
// ka te arī jābūt burtiem un/vai cipariem "[a-z]|[0-9]",bet ierobežojums ir divi vai trīs tādi "{2,3}"
// un ne vairāk vai mazāk. Visa šitā jezga beidzas ar "$" simbolu kas paredz, ka tiem "{2,3}" ir jābūt $email beigās
// $email = "mans-pasts@mansdomens.gov" ;)
Tā otro rindiņu neanalizēšu tik smalki jo tur ir līdzīgi ;)
// !eregi nosaka kas nedrīkst būt šajā $email
// (@.*@)| $email nedrīkst saturēt (@ jebkaspavidu @)
// (\.\.)| $email nedrīkst saturēt divus punktus
// (@\.)| $email nedrīkst saturēt "@" un punktu pēc tā
// (\.@)| $email nedrīkst saturēt punktu un pēc tā "@"
// (^\.) $email nedrīkst sākties ar punktu
// genoht ;)
5 Komentāri
1. Niks G [ Piektdiena, 2004. gada 30. janvāris , 16:59:58 ] Acis ņirb, bet turēt var. Es sāku kolekcionēt `eregus`, kas izgriež no M-Zapt Wort documentiem lieko spamu (laikam jau Bilu lobē trafika pārdevēji) Tā pēc krrietnas tīrīšanas palika 35%(!) HTML tīrradņa no sākuma masas. Te daži no pieminētajiem: ---------------------------- class=[a-z0-9-]+ <!\[.+\]> <[a-z]:.+> mso-ansi-language:LV font-[a-z]+:[a-z]+; font-family:"[a-z, ]+" style=mso[a-z,-]+:[a-z]+
2. Tas pats [ Piektdiena, 2004. gada 30. janvāris , 17:01:39 ] Ieteiktu autoram komentos `\n` eregot par `<br>`, tad mans iepr. koments labaak lasītos!
3. Anonimos www [ Ceturtdiena, 2004. gada 12. februāris , 08:01:29 ] class=[a-z0-9-]+ <!\[.+\]>
4. Kirils www [ Trešdiena, 2004. gada 7. jūlijs , 20:52:59 ] tas ir galiigi nepareizs eregs. pasham tagad nav nekaadas gribeeshanas raxtiit jaunu eregu, jo tas tomeer ir smags darbs. bet shis eregs nenjemtu shaadas pasta adreses: user@ziņas.lv user@[34.2.3.1] rūķis@glāze.šķūnī.lv user@master.coop user@g3neral.museum user@d34d.info jaanis..liepinjsh@host.com nu labi, pagaidaam pietix
5. BlackHalt @ www [ Trešdiena, 2004. gada 7. jūlijs , 21:48:27 ] Kirils, nu ir šķībs. Bet par to rūķis@glāze.šķūnī.lv tā ir domēnu falsifikācija, jo tādu domēnu vispār nav un nevar būt. Latnet kārtējais krāpjdarbs.
X
^^^