Muda mfupi uliopita niliweka Kikaguzi cha Nguvu ya Nenosiri kwa kutumia JavaScript na Maneno ya Kawaida. Kwenye barua hiyo hiyo, unaweza pia kuangalia muundo wa anwani ya barua pepe ukitumia mbinu sawa ya usemi wa kawaida (regex).
Ikiwa kipengee chako cha fomu kina faili ya id = "anwani ya barua pepe" na unaongeza fomu onSubmit = ”kurudi kuangaliaEmail ();", Hii ni kazi ya Javascript ambayo unaweza kutumia kurudisha arifu ikiwa anwani ya barua pepe ina muundo halali au la:
function checkEmail() { var email = document.getElementById('emailaddress'); var filter = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; if (!filter.test(email.value)) { alert('Please provide a valid email address'); email.focus; return false; } }
Kazi inathibitisha yaliyomo ya barua pepe kwa ile ya kichungi. Ikiwa kulinganisha kunashindwa, inachukua tahadhari na kurudisha mwelekeo kwenye uwanja wa anwani ya barua pepe!
Kwa fomu zilizo na anwani nyingi za barua pepe, itakuwa nzuri kufanya class = "emailaddress". Ikiwa unayo maktaba ya mfano.http://www.prototypejs.orgpamoja na kwenye ukurasa unaweza kufanya kitu kama hiki:
var halali = kweli;
var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
$$ ('. emailaddress'). kila (kazi (barua pepe) {
ikiwa (! filter.test (email.value)) {
tahadhari (? Tafadhali toa anwani halali ya barua pepe?);
barua pepe.focus;
halali = uwongo;
}
});
kurudi halali;
Asante Ade! Nitahitaji kujifunza zaidi juu ya madarasa na JavaScript!
Mfano wa asili wa Doug ulikuwa mzuri, lakini hii inafungia! Sikujua kwamba unaweza kusindika vitu kuwa na darasa kwa njia hii, na sintaksia inayofanya kazi ni tamu.
Ade na timu yake ni wa kushangaza!
Nzuri, siku zote ninaweza kukutegemea hati zingine mbaya! 🙂
Asante Tony!
Ninapenda wazo hilo, lakini nitasita kupitisha usemi huu wa kawaida bila maelezo ya anwani ipi ya barua pepe ambayo haikubali na ni anwani zipi haramu zinazoruhusu.
Kwa mfano wa usemi wa kawaida ambao hufanya kazi nzuri pamoja na ufafanuzi wa kesi ambazo hazifuniki, angalia hii:
http://www.regular-expressions.info/email.html
Upendeleo wangu wa kibinafsi ni kufunika kesi nyingi rahisi na kutoa onyo kwa kila kitu badala ya kukataa. Ikiwa Bob kweli anataka kuwasilisha bob@com.makumbusho badala ya bob@makumbusho.com, kwanini asimruhusu?
Habari Reg,
Unaweza kujaribu Regex ukitumia Jaribio la Regex mkondoni.
Pia, kuna mengi zaidi ambayo yanaweza kufanywa ikiwa unataka kuhakikisha faili ya anuani ya barua pepe halali kulingana na RFC.
Kuna sababu chache za kutomruhusu mtu kuingia anwani ya barua pepe isiyo sahihi:
1. Watakukasirikia wakati barua pepe waliyotarajia haipatikani - bila kujali ikiwa ni kosa lako au anwani iliingizwa vibaya.
2. Ikiwa com.museum ilikuwa uwanja halali na, wacha tuseme, Yahoo! iliiendesha - anwani yoyote ya barua pepe ambayo iliruka itakuwa na athari mbaya kwa sifa ya kampuni yako kwa uwasilishaji wa barua pepe. Hii inaweza kusababisha barua pepe zote za kampuni yako kuzuiwa.
3. Ikiwa mtoa huduma wako wa barua pepe alikuruhusu kuingia bob@com.makumbusho, ungelipa pia kila barua pepe iliyotumwa kwa anwani hiyo ya barua pepe hadi watakapojiondoa kwa anwani hiyo kwa sababu ya kubaki. Napenda kuacha ESP yoyote ambayo ingeruhusu anwani batili ya barua pepe kama hiyo - wanachukua pesa zako tu!
Asante kwa kuacha!
Doug
Kamili, kile tu nilihitaji!
Kuna njia rahisi zaidi ya kuandika usemi:
var regex = /^[a-z0-9\._-]+@([a-z0-9_-]+\.)+[a-z]{2,6}$/i;
- Na kibadilishaji cha mwisho / i hakuna haja ya kuonyesha masafa ya juu.
- Sijui yoyote TLD na nambari ndani yake.
Kwa kumbuka upande, ninaruhusu TLD na hadi chars 6; mpya hufika mara kwa mara na hauwezi kujua (vizuri, siku za usoni za baadaye zinaweza hata kuwa na nambari ndani yake, najua).
Hi there,
Ninajaribu kutumia hii katika fomu iliyopo katika wakati halisi, lakini hii haionekani kuwa inathibitisha wakati wa kweli kama hakiki yako ya nguvu ya nywila…
Au, je! Mimi ni mjinga tu, na ni kazi kwangu?
btw, napenda sana kile unachoendelea hapa, mafunzo yako ni rahisi sana, hakika nitaweka alama kwenye hii ...
FYI tu; Sijajaribu suluhisho la Ade lakini muundo ulio hapo juu hauthibitishi anwani za barua pepe zilizo na herufi ndani yake .. (kwa mfano, Mike.O'Hare@Whatever.com). Mitume ni halali kwa RFC 2821/2822 -> http://www.faqs.org/rfcs/rfc2822.html
YAKO,
Sanjay
Pia haionekani kushughulikia mhusika pamoja, ambayo ni halali.
Angalia: http://www.dominicsayers.com/isemail/
Kwa dokezo kubwa, hili ni shida kuu na nambari ya kukata-na-kubandika, ambayo inastahili mjadala kamili yenyewe.
@ robbyslaughter.com
wewe ni nutz ..
inafanya kazi vizuri ..! @
Ingekuwa sawa ikiwa tunaweza kupata suluhisho la kuzuia anwani bandia za barua pepe kwenye maoni kwenye WordPress
Marekebisho madogo tu: Usemi wa kawaida una ziada () + mwishoni. Inapaswa kusoma:
^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+[a-zA-Z0-9]{2,4}$
Pamoja na ya kwanza urefu wowote TLDs ingekubaliwa (ambayo sio mbaya sana kama wengine walivyosema, lakini ikiwa hiyo ndiyo nia ya kujieleza inaweza kufupishwa).
Tafadhali tafadhali fafanua usemi wa kawaida wa nambari hii na jinsi inavyofanya kazi? Pia kuhusu .jaribu - Je! Jaribu taarifa ya msingi katika javascript kuangalia vitu kama ulivyofanya kwenye nambari hapo juu?
Hii ni nambari fupi ya kujieleza barua pepe-
kazi idhibitisha Barua pepe (id)
{
var emailPattern = / ^ [a-zA-Z0-9._-)+@[a-zA-Z0-9.-)+. [a-zA-Z] {2,4}$/;
kurudi emailPattern.test (id);
}
Deepak Rai
varanasi
Hii ni nambari fupi ya kujieleza barua pepe-
kazi idhibitisha Barua pepe (id)
{
var emailPattern = / ^ [a-zA-Z0-9._-)+@[a-zA-Z0-9.-)+. [a-zA-Z] {2,4}$/;
kurudi emailPattern.test (id);
}
Deepak Rai
varanasi
Asante sana mjomba. Hiyo ilinisaidia sana 🙂
Amanda
asante kwa nambari!
Asante, lakini kuna hitilafu katika regex hii. Mimi sio mtaalam wa regex, lakini nilijaribu barua pepe:
mtihani @ mtihani
na ilipita regex… niliona inakosa kutoroka "." hivyo inapaswa kuwa:
/^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/
Ninaendelea na
/^\\w+(_Langs- /
na nini kuhusu .info's?
oh shit… miaka 3 iliyopita? : S
Kweli, hii ni kuangalia mbaya lakini sio sahihi kwa 100%, kwa mfano hii itakuwa sawa na john_doe. @ gmail.com ambayo sio anwani halali ya barua pepe (nukta hairuhusiwi kama tabia ya mwisho katika sehemu ya barua pepe).
Pia ingekubali john ...... ambayo pia ni batili kwani haiwezi kuwa na nukta zaidi ya moja kwa mfuatano.
Hizi ni kasoro tu nilizoona wakati wa kwanza kuona.
Kusudi langu sio kubabaisha tu kuonyesha hii ikiwa mtu anapanga kutumia hii kama ukaguzi wa usalama - sio salama ya kutosha.
Kwa habari kuhusu anwani halali za barua pepe angalia hii: http://en.wikipedia.org/wiki/E-mail_address
Deepak,
Kweli, nadhani unahitaji kuomba kutoroka kwa nukta ("."). Kwa hivyo, kazi yako inapaswa kuwa, badala yake:
kazi idhibitisha Barua pepe (id)
{
var emailPattern = / ^ [a-zA-Z0-9._-)+@[a-zA-Z0-9.-)+. [a-zA-Z] {2,4}$/;
kurudi emailPattern.test (id);
}
Vinginevyo, nukta inamaanisha "tabia yoyote". Ninaamini wahusika kama hao wanahitaji kutoroka.
Regards,
Federico
kazi idhibitisha Barua pepe (fld) {
var kosa = "";
var tfld = trim (fld.thamani); // thamani ya uwanja na nafasi nyeupe imepunguzwa
var emailFilter = / ^ [^@ ]+ @ [^^ @. ]+. [^@ ]*ww$/;
var haramuChars = / [(),;: \ ”[]] /;
ikiwa (fld.value == "Ingiza Anwani yako ya barua pepe") {
kosa = "Tafadhali ingiza anwani yako ya barua pepe.n";
} mwingine ikiwa (! emailFilter.test (tfld)) {// jaribu barua pepe kwa herufi haramu
kosa = "Tafadhali ingiza anwani halali ya barua pepe.n";
} mwingine ikiwa (fld.value.match (Chars haramu)) {
kosa = "Tafadhali ingiza anwani halali ya barua pepe.n";
}
kosa la kurudi;
}
kazi idhibitisha Barua pepe (fld) {
var kosa = "";
var tfld = trim (fld.thamani); // thamani ya uwanja na nafasi nyeupe imepunguzwa
var emailFilter = / ^ [^@ ]+ @ [^^ @. ]+. [^@ ]*ww$/;
var haramuChars = / [(),;: \ ”[]] /;
ikiwa (fld.value == "Ingiza Anwani yako ya barua pepe") {
kosa = "Tafadhali ingiza anwani yako ya barua pepe.n";
} mwingine ikiwa (! emailFilter.test (tfld)) {// jaribu barua pepe kwa herufi haramu
kosa = "Tafadhali ingiza anwani halali ya barua pepe.n";
} mwingine ikiwa (fld.value.match (Chars haramu)) {
kosa = "Tafadhali ingiza anwani halali ya barua pepe.n";
}
kosa la kurudi;
}
kazi idhibitisha Barua pepe (fld) {
var kosa = "";
var tfld = trim (fld.thamani); // thamani ya uwanja na nafasi nyeupe imepunguzwa
var emailFilter = / ^ [^@ ]+ @ [^^ @. ]+. [^@ ]*ww$/;
var haramuChars = / [(),;: \ ”[]] /;
ikiwa (fld.value == "Ingiza Anwani yako ya barua pepe") {
kosa = "Tafadhali ingiza anwani yako ya barua pepe.n";
} mwingine ikiwa (! emailFilter.test (tfld)) {// jaribu barua pepe kwa herufi haramu
kosa = "Tafadhali ingiza anwani halali ya barua pepe.n";
} mwingine ikiwa (fld.value.match (Chars haramu)) {
kosa = "Tafadhali ingiza anwani halali ya barua pepe.n";
}
kosa la kurudi;
}
kazi idhibitisha Barua pepe (fld) {
var kosa = "";
var tfld = trim (fld.thamani); // thamani ya uwanja na nafasi nyeupe imepunguzwa
var emailFilter = / ^ [^@ ]+ @ [^^ @. ]+. [^@ ]*ww$/;
var haramuChars = / [(),;: \ ”[]] /;
ikiwa (fld.value == "Ingiza Anwani yako ya barua pepe") {
kosa = "Tafadhali ingiza anwani yako ya barua pepe.n";
} mwingine ikiwa (! emailFilter.test (tfld)) {// jaribu barua pepe kwa herufi haramu
kosa = "Tafadhali ingiza anwani halali ya barua pepe.n";
} mwingine ikiwa (fld.value.match (Chars haramu)) {
kosa = "Tafadhali ingiza anwani halali ya barua pepe.n";
}
kosa la kurudi;
}
trim (s) za kazi
{
kurudi s.replace (/ ^ s + | s + $ /, ”);
}
trim (s) za kazi
{
kurudi s.replace (/ ^ s + | s + $ /, ”);
}
'. Kuzingatia' ni kazi, inapaswa kuwa:
barua pepe.focus ()
'. Kuzingatia' ni kazi, inapaswa kuwa:
barua pepe.focus ()
kutisha
Inafanya kazi kama vito .. Matumizi mazuri ya misemo ya reg kwenye JavaScript ...
Ni ufa katika vito…
Anwani "mmm @ mmm..com" itakubaliwa. Lakini nukta mbili pamoja sio halali.
Fellas, tumia. Haihitaji uthibitisho wowote wa JS.
Lakini inafanya kazi tu na vivinjari vya kisasa. Kwa bahati mbaya, ulimwengu haujachukua bado. -
Imetumwa kutoka Sanduku la Barua kwa iPhone