Tamall ó shin chuir mé suas a Seiceálaí Neart Pasfhocal ag úsáid JavaScript agus Léirithe Rialta. Ar an nóta céanna sin, is féidir leat struchtúr seoladh ríomhphoist a sheiceáil freisin agus an mhodheolaíocht slonn rialta céanna (regex) á úsáid agat.
Má tá an id = "emailaddress" agus cuireann tú foirm leis onSubmit = ”seol ar ais checkEmail ();“, Is feidhm Javascript í seo is féidir leat a úsáid chun foláireamh a thabhairt ar ais má tá struchtúr bailí ag an seoladh ríomhphoist nó nach bhfuil:
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; } }
Déanann an fheidhm ábhar an ríomhphoist a bhailíochtú le hábhar an scagaire. Má theipeann ar an gcomparáid, déanann sé foláireamh agus cuireann sé an fócas ar ais chuig an réimse seoltaí ríomhphoist!
I gcás foirmeacha le seoltaí ríomhphoist iolracha, bheadh sé go maith class = ”seoladh ríomhphoist” a dhéanamh. Má tá an leabharlann prototype.js agat (http://www.prototypejs.org) san áireamh ar an leathanach is féidir leat rud éigin mar seo a dhéanamh:
var bailí = fíor;
var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
$$('.emailaddress').each( feidhm(ríomhphost) {
más rud é (!filter.test(email.value)) {
foláireamh(? Tabhair seoladh ríomhphoist bailí le do thoil?);
ríomhphost.focus;
bailí = bréagach;
}
});
tuairisceán bailí;
Go raibh maith agat Ade! Beidh orm níos mó a fhoghlaim faoi ranganna agus JavaScript!
Bhí sampla bunaidh Doug fionnuar, ach tá an ceann seo reo! Ní raibh a fhios agam go bhféadfá eilimintí a phróiseáil le rang ar an mbealach seo, agus tá an chomhréir fheidhmiúil milis.
Tá Ade agus a fhoireann iontach!
Go deas, is féidir liom brath ort i gcónaí le haghaidh roinnt scripteanna fionnuara uafásacha! 🙂
Go raibh maith agat Tony!
Is maith liom an smaoineamh, ach bheadh leisce orm an slonn rialta áirithe seo a ghlacadh gan cur síos ar na seoltaí ríomhphoist dlíthiúla nach nglacann sé leo agus cé na seoltaí mídhleathacha a cheadaíonn sé.
Le haghaidh sampla de shloinneadh rialta a dhéanann jab réasúnta in éineacht le míniú ar na cásanna nach gclúdaíonn sé, féach seo:
http://www.regular-expressions.info/email.html
Is é mo rogha pearsanta an chuid is mó de na cásanna simplí a chlúdach agus rabhadh a eisiúint do gach rud eile seachas é a dhiúltú. Más mian le Bob cuir isteach bob@com.museum seachas bob@museum.com, cén fáth nach lig dó?
Hi Reg,
Is féidir leat an Regex a thástáil trí úsáid a bhaint as an Tástálaí Regex Ar Líne.
Chomh maith leis sin, is cinnte go bhfuil i bhfad níos mó is féidir a dhéanamh más mian leat a chinntiú go seoladh ríomhphoist bailí i gcomhréir leis an RFC.
Tá roinnt cúiseanna ann gan ligean do dhuine éigin seoladh ríomhphoist neamhbhailí a chur isteach:
1. Beidh siad ag cur as duit nuair nach n-éiríonn leis an ríomhphost a raibh siad ag súil leis - is cuma cé acu an raibh an locht ort nó nach raibh an seoladh isteach go mícheart.
2. Dá mba fhearann bailí é com.museum agus, déarfainn, Yahoo! d'fheidhmigh sé é – bheadh tionchar diúltach ag aon seoladh ríomhphoist a bheadh ag preabadh ar cháil do chuideachta as seachadadh ríomhphoist. D’fhéadfadh go gcuirfí bac ar ríomhphost do chuideachta ar fad dá bharr.
3. Má cheadaigh do sholáthraí seirbhíse ríomhphoist duit dul isteach bob@com.museum, d'íocfá freisin as gach ríomhphost a sheoltar chuig an seoladh ríomhphoist sin go dtí go ndíliosfadh siad an seoladh sin de bharr preabanna. Déarfainn aon ESP a cheadódh seoladh ríomhphoist neamhbhailí mar sin – níl le déanamh acu ach do chuid airgid a thógáil!
Go raibh maith agat as stopadh!
Doug
Foirfe, díreach an rud a bhí uaim!
Tá bealach i bhfad níos simplí chun an slonn a scríobh:
var regex = /^[a-z0-9\._-]+@([a-z0-9_-]+\.)+[a-z]{2,6}$/i;
– Leis an modhnóir deiridh /i ní gá raon na gcásanna uachtair a léiriú.
– Níl a fhios agam ar bith TLD le huimhreacha ann.
Ar nóta taobh, ceadaím do TLD le suas le 6 chars; tagann cinn nua isteach go rialta agus ní bhíonn a fhios agat riamh (bhuel, b’fhéidir go mbeidh uimhreacha istigh ag somme future ones, tá a fhios agam).
Dia duit ann,
Tá mé ag iarraidh é seo a úsáid i bhfoirm atá ann cheana féin i bhfíor-am, ach is cosúil nach bhfuil sé seo á bhailíochtú i bhfíor-am ar nós do sheiceálaí láidreachta do phasfhocal…
Nó, an bhfuil mé chomh clue sin, agus nach bhfuil sé ag obair dom?
btw, is breá liom a bhfuil ar siúl agat anseo, tá do ranganna teagaisc an-simplí, beidh mé cinnte ag leabharmharcáil an ceann seo….
Díreach FYI; Níor bhain mé triail as réiteach Ade ach ní dheimhníonn an patrún thuas seoltaí r-phoist a bhfuil aspail iontu.. (m.sh. Mike.O'Hare@Whatever.com). Tá na n-apstroifí bailí de réir RFC 2821/2822 –> http://www.faqs.org/rfcs/rfc2822.html
HTH,
Sanjay
Ní cosúil freisin go láimhseálann sé an carachtar móide, atá bailí.
Féach: http://www.dominicsayers.com/isemail/
Ar nóta níos mó, is fadhb lárnach í seo maidir le cód a ghearradh agus a ghreamú, fadhb ar fiú plé iomlán a dhéanamh uirthi ann féin.
@robbyslaughter.com
tá tú nutz. .
tá sé ag obair go breá..!@
Bheadh sé ceart go leor dá bhféadfaimis teacht ar réiteach chun seoltaí ríomhphoist falsa ar thuairimí ar WordPress a sheachaint
Ceartúchán beag: Tá ()+ breise ag an slonn rialta ag an deireadh. Ba chóir go léifeadh sé:
^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+[a-zA-Z0-9]{2,4}$
Leis an gcéad cheann ghlacfaí le TLDanna fad ar bith (rud nach bhfuil mícheart intreach mar a dúirt daoine eile, ach dá mba é sin an rún d’fhéadfaí an slonn a ghiorrú).
An féidir leat míniú rialta a thabhairt ar shloinneadh an chóid seo agus conas a oibríonn sé? Freisin faoi .test - An ráiteas réamhshocraithe é .test i javascript chun rudaí mar a rinne tú sa chód thuas a sheiceáil?
Is cód gearr é seo le haghaidh slonn ríomhphoist-
feidhm validateEmail(id)
{
var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,4}$/;
seol ar ais emailPattern.test(id);
}
Deepak Rai
varanasi
Is cód gearr é seo le haghaidh slonn ríomhphoist-
feidhm validateEmail(id)
{
var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,4}$/;
seol ar ais emailPattern.test(id);
}
Deepak Rai
varanasi
Míle buíochas uncail. Chuidigh sé sin go mór liom 🙂
Amanda
go raibh maith agat as an gcód!
Go raibh maith agat, ach tá earráid sa regex seo. Ní saineolaí regex mé, ach bhain mé triail as ríomhphost:
tástáil@tástáil
agus rith sé an regex ... thug mé faoi deara go bhfuil sé in easnamh ar éalú an "." mar sin ba chóir go mbeadh:
/^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/
Táim ag rolladh le
/^\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\w{2,3})+$ /
agus cad faoi .info?
OH cac… 3 bliana ó shin? :S
Bhuel, níl anseo ach seiceáil garbh ach níl sé 100% cruinn, mar shampla bheadh sé seo ceart go leor john_doe.@gmail.com nach seoladh ríomhphoist bailí é i ndáiríre (ní cheadaítear ponc mar charachtar deiridh sa chuid áitiúil den ríomhphost).
Chomh maith leis sin ghlacfadh sé john…doe@gmail.com atá neamhbhailí freisin toisc nach féidir níos mó ná ponc amháin a bheith i seicheamh.
Níl iontu seo ach roinnt lochtanna a thug mé faoi deara ar an gcéad amharc.
Níl sé ar intinn agam ach é seo a chur in iúl ar eagla go bhfuil sé beartaithe ag duine é seo a úsáid mar sheiceáil slándála - níl sé slán go leor.
Le haghaidh faisnéise faoi sheoltaí bailí ríomhphoist seiceáil é seo: http://en.wikipedia.org/wiki/E-mail_address
Deepak,
I ndáiríre, is dóigh liom go gcaithfidh tú éalú a chur i bhfeidhm don phonc (“.”). Mar sin , ba chóir go mbeadh d'fheidhm, ina ionad sin:
feidhm validateEmail(id)
{
var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,4}$/;
seol ar ais emailPattern.test(id);
}
Seachas sin, chiallódh an ponc “aon charachtar”. Creidim gur gá éalú ó charachtair speisialta den sórt sin.
mhéin,
Federico
feidhm validateEmail(fld) {
var earráid =””;
var tfld = Baile Átha Troim(fld.value); // luach na páirce le spás bán bearrtha as
var emailFilter = /^[^@]+@[^@.]+.[^@]*ww$/ ;
var illegalChars = /[(),;:\”[]]/ ;
má (fld.value == "Cuir isteach do Sheoladh ríomhphoist") {
error = “Cuir isteach do sheoladh ríomhphoist.n”;
} eile más rud é (!emailFilter.test(tfld)) {// ríomhphost tástála le haghaidh carachtair mhídhleathacha
error = “Cuir isteach seoladh ríomhphoist bailí.n”;
} eile más rud é (fld.value.match(illegalChars)) {
error = “Cuir isteach seoladh ríomhphoist bailí.n”;
}
earráid ar ais;
}
feidhm validateEmail(fld) {
var earráid =””;
var tfld = Baile Átha Troim(fld.value); // luach na páirce le spás bán bearrtha as
var emailFilter = /^[^@]+@[^@.]+.[^@]*ww$/ ;
var illegalChars = /[(),;:\”[]]/ ;
má (fld.value == "Cuir isteach do Sheoladh ríomhphoist") {
error = “Cuir isteach do sheoladh ríomhphoist.n”;
} eile más rud é (!emailFilter.test(tfld)) {// ríomhphost tástála le haghaidh carachtair mhídhleathacha
error = “Cuir isteach seoladh ríomhphoist bailí.n”;
} eile más rud é (fld.value.match(illegalChars)) {
error = “Cuir isteach seoladh ríomhphoist bailí.n”;
}
earráid ar ais;
}
feidhm validateEmail(fld) {
var earráid =””;
var tfld = Baile Átha Troim(fld.value); // luach na páirce le spás bán bearrtha as
var emailFilter = /^[^@]+@[^@.]+.[^@]*ww$/ ;
var illegalChars = /[(),;:\”[]]/ ;
má (fld.value == "Cuir isteach do Sheoladh ríomhphoist") {
error = “Cuir isteach do sheoladh ríomhphoist.n”;
} eile más rud é (!emailFilter.test(tfld)) {// ríomhphost tástála le haghaidh carachtair mhídhleathacha
error = “Cuir isteach seoladh ríomhphoist bailí.n”;
} eile más rud é (fld.value.match(illegalChars)) {
error = “Cuir isteach seoladh ríomhphoist bailí.n”;
}
earráid ar ais;
}
feidhm validateEmail(fld) {
var earráid =””;
var tfld = Baile Átha Troim(fld.value); // luach na páirce le spás bán bearrtha as
var emailFilter = /^[^@]+@[^@.]+.[^@]*ww$/ ;
var illegalChars = /[(),;:\”[]]/ ;
má (fld.value == "Cuir isteach do Sheoladh ríomhphoist") {
error = “Cuir isteach do sheoladh ríomhphoist.n”;
} eile más rud é (!emailFilter.test(tfld)) {// ríomhphost tástála le haghaidh carachtair mhídhleathacha
error = “Cuir isteach seoladh ríomhphoist bailí.n”;
} eile más rud é (fld.value.match(illegalChars)) {
error = “Cuir isteach seoladh ríomhphoist bailí.n”;
}
earráid ar ais;
}
trim(s) feidhm
{
seol ar ais s.replace(/^s+|s+$/, ”);
}
trim(s) feidhm
{
seol ar ais s.replace(/^s+|s+$/, ”);
}
Is feidhm é an '.focus', ba cheart go mbeadh:
ríomhphost.focus()
Is feidhm é an '.focus', ba cheart go mbeadh:
ríomhphost.focus()
awesome
Oibríonn sé cosúil le gem.. Úsáid iontach na sloinn reg i javascript…
Tá sé craic sa gem…
Glacfar leis an seoladh “mmm@mmm..com”. Ach níl dhá phonc le chéile bailí.
Fellas, bain úsáid as . Ní éilíonn sé aon bhailíochtú JS.
Ach oibríonn sé ach amháin le brabhsálaithe nua-aimseartha. Ar an drochuair, níl an domhan tar éis teacht suas go fóill. —
Seolta ón mBosca Poist le haghaidh iPhone