Autor | Zpráva | ||
---|---|---|---|
petersk Profil * |
#1 · Zasláno: 2. 11. 2010, 21:20:26
Ako môžem v texte (napr. textarea) nájsť a vypísať všetky emaily?
|
||
Darker Profil |
#2 · Zasláno: 2. 11. 2010, 22:27:01
Samosebou, tak z části fungují spamboti. Ale mělo by to být v sekci JS, pokud chceš prohledávat textareu, a ne parsovat webové stránky a tahat z nich maily obětí spamu...
Pak jde jen o to, rozdělit text po mezerách, následně vzniklé pole projet cyklem, a pokud prvek obsahuje zavináč a tečku (v tomto pořadí) přidat jej do jiného pole. Než ti sem někdo hodí skript skus se zamyslet, nicméně podmínka se zavináčem vypadá takto: if(pole[i].indexOf("@")!=-1&&pole[i].indexOf("@")<pole[i].indexOf(".")){/*pridej*/} |
||
SwimX Profil |
#3 · Zasláno: 2. 11. 2010, 22:29:59
darker, petersk:
mnohem jednoduší řešení zní: regulární výrazy |
||
Darker Profil |
#4 · Zasláno: 2. 11. 2010, 22:31:44
Ty v JS nejsou, a v PHP nejsou žádné html objekty včetně prvku textarea, takže jsem se zařídil podle situace.
|
||
SwimX Profil |
#5 · Zasláno: 2. 11. 2010, 22:34:52 · Upravil/a: SwimX
darker:
„Ty v JS nejsou“ Regulární výrazy a JavaScript - úvod uznávám že s JS moc nepracuju, ale určitě jsem je i tam využil v php nějak takle (není to vybuec ideální regulár, povoluje třeba dvě tečky za sebou v mailu atd. ale pro ukázku stačí bohatě $text = "Lorem ipsum dolor sit amet consectetuer Aliquam Phasellus tempor sagittis nibh. Natoque email@seznam.cz Lorem eget mauris Aenean et Curabitur vel lacinia pellentesque iaculis. At id hac Sed nisl metus sem pellentesque laoreet a velit. Pretium metus est risus Pellentesque laoreet Nam cursus Phasellus Pellentesque Nulla. At tristique at orci mujmejl@gmail.com quis malesuada tincidunt id Integer vitae auctor. Vitae consectetuer nibh In ut libero a Sed ut Nunc Morbi. Ullamcorper penatibus."; $allow_chars = "[a-z1-9-_\.]"; preg_match_all("~$allow_chars+@$allow_chars+\.$allow_chars+~", $text, $matches); print_r($matches); |
||
AM_ Profil |
#6 · Zasláno: 2. 11. 2010, 22:40:33
SwimX:
nedá mi to se nezeptat, proč by se v e-mailové adrese nemohla vyskytnout nula? |
||
Keeehi Profil |
#7 · Zasláno: 2. 11. 2010, 23:04:41 · Upravil/a: Keeehi
SwimX:
V emailové adrese se může vyskytnout klidně i velké písmeno. :-) |
||
SwimX Profil |
#8 · Zasláno: 2. 11. 2010, 23:12:09
:-) no řikám, že to není dokonalý :-) na 0 sem zapomněl a v tom preg_matched_all měl být na konci i
|
||
petersk Profil * |
#9 · Zasláno: 2. 11. 2010, 23:16:32
Nemám záujem vytvoriť spam robota, potrebujem v príspevkoch vyhľadať emailové adresy.
|
||
Majkl578 Profil |
#10 · Zasláno: 2. 11. 2010, 23:17:44 · Upravil/a: Majkl578
SwimX:
+foo&bar#bat@example.com je také platná adresa.
Jak správně validovat e-mail se můžeš podívat třeba v kódu Nette Frameworku. |
||
SwimX Profil |
#11 · Zasláno: 2. 11. 2010, 23:28:44
Majkl578:
Dík, ale mě to netrápí :-) já využívám .+@.+\..+
petersk: tak pak si netrefil kategorii a patří to do JS. <script> function find_mails(){ var text = document.getElementById('text').value; var mails = text.match(/[^ ]+@[^ ]+\.[^ ]+/gi); alert( mails.join("\n") ); } </script> <textarea id='text'>Lorem ipsum dolor sit amet consectetuer Aliquam Phasellus tempor sagittis nibh. Natoque email@seznam.cz Lorem eget mauris Aenean et Curabitur vel lacinia pellentesque iaculis. At id hac Sed nisl metus sem pellentesque laoreet a velit. Pretium metus est risus Pellentesque laoreet Nam cursus Phasellus Pellentesque Nulla. At tristique at orci mujmejl@gmail.com quis malesuada tincidunt id Integer vitae auctor. Vitae consectetuer nibh In ut libero a Sed ut Nunc Morbi. Ullamcorper penatibus.</textarea> <button onclick='find_mails()'>Hledej mejly</button> |
||
AM_ Profil |
#12 · Zasláno: 3. 11. 2010, 11:31:55
O správnosti reguláru e-mailu se asi moc nemá cenu dohadovat, někde jsem četl, že to vlastně ani nikde pořádně standardizované není, především které znaky jsou povolené - proto mi tedy přijde nejsprávnější mít ten regulár co nejobecnější (něco jako
SwimX: „Dík, ale mě to netrápí :-) já využívám .+@.+\..+“ ). |
||
Darker Profil |
#13 · Zasláno: 3. 11. 2010, 16:04:24
SwimX:
„Regulární výrazy a JavaScript - úvod“ To jsem netušil, myslel jsem že je to specialita PHP. Omlouvám se za mistifikaci. |
||
Chamurappi Profil |
#14 · Zasláno: 3. 11. 2010, 16:41:45
Reaguji na darkera:
Regulární výrazy jsou v JS dokonce zadrátované přímo do syntaxe jazyka, což se u mnoha jazyků nevidí. |
||
Darker Profil |
#15 · Zasláno: 3. 11. 2010, 18:36:25
Ano, hned jsem si o tom něco vyhledal, a zalitoval jsem času, který jsem dřív ztratil složitými konstrukcemi pro kontrolu nějakého textu...
|
||
Časová prodleva: 14 let
|
0