Имэйлийн маркетинг ба имэйлийн маркетингийн автоматжуулалтCRM ба мэдээллийн платформ

Энгийн илэрхийлэл бүхий имэйл хаягийг хэрхэн баталгаажуулах вэ (Regex)

Өнөө үед бараг бүх програмчлалын хэл ердийн хэллэгийг дэмждэг. Зарим хөгжүүлэгчид таалагдахгүй байгаа ч серверийн нөөц багатай, баталгаажуулалт зэрэг функцийг маш хурдан гүйцэтгэдэг тул тэдгээр нь үнэхээр шилдэг туршлага юм. Имэйл хаягууд нь зөв форматтай эсэхийг шалгахын тулд хялбархан шалгах боломжтой төгс жишээ юм.

Баталгаажуулалт нь тийм биш гэдгийг санаарай шалгах. Баталгаажуулалт гэдэг нь дамжуулсан өгөгдөл нь зохих ёсоор хийгдсэн стандарт форматыг дагаж мөрддөг гэсэн үг юм. Баталгаажуулсны дараа алдаж болох имэйл хаягуудын талаархи зарим сонирхолтой зүйлс.

Имэйл хаяг хэр удаан байж болох вэ?

Өнөөдөр би үүнийг олохын тулд ухаж үзэх хэрэгтэй байсан, гэхдээ та имэйл хаягийн хүчинтэй хугацаа хэд болохыг мэдэх үү? Энэ нь үнэндээ хэсэг хэсгүүдэд хуваагдсан ... Нэр@Domain.com. Энэ нь дагуу RFC2822.

  1. Нэр нь 1-64 тэмдэгт байж болно.
  2. Домэйн нь 1-ээс 255 тэмдэгт байж болно.

Энэ нь хүчинтэй имэйл хаяг байж болно гэсэн үг:

loremaipsumadolorasitaametbaconsectetueraadipiscin
gaelitanullamc@loremaipsumadolorasitaametbaconsect
etueraadipiscingaelitcaSedaidametusautanisiavehicu
laaluctuscaPellentesqueatinciduntbadiamaidacondimn
tumarutrumbaturpisamassaaconsectetueraarcubaeuatin
ciduntaliberoaaugueavestibulumaeratcaPhasellusatin
ciduntaturpisaduis.com

Үүнийг нэрийн хуудас дээр суулгаж үзээрэй! Хачирхалтай нь ихэнх имэйл хаягийн талбарууд вэб дээрх 100 тэмдэгтээр хязгаарлагддаг... энэ нь техникийн хувьд буруу юм. Имэйл хаягийг баталгаажуулахад ашигладаг бусад ердийн илэрхийллүүдийн зарим нь .com гэх мэт 3 оронтой дээд түвшний домайныг хайдаг; Гэсэн хэдий ч, уртад ямар ч хязгаарлалт байхгүй дээд түвшний домэйнууд (жишээ нь. Martech Zone 4 оронтой - .бүс).

Имэйл хаягийн стандартчилал нь таны бодож байгаагаас хамаагүй илүү төвөгтэй юм. Стандартын дагуу бичихдээ и-мэйл хаягийн жинхэнэ тогтмол илэрхийлэл энд байна Regexr:

[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?

HTML5 нь баталгаажуулах шаардлагагүй

Стандартын дагуу имэйлийг хүчинтэй байлгах хамгийн хялбар арга бол HTML5 имэйл оруулах талбарыг ашиглах явдал юм.

<input type='email' name='email' placeholder='name@domain.com' />

Гэсэн хэдий ч таны вэб аппликейшн таны серверт нэвтрэх болон илгээх үед хөтөч дээрх имэйл хаягийг баталгаажуулахыг хүсэх тохиолдол байдаг.

PHP дээр зөв имэйл хаягийн хувьд Regex

Үүнийг цөөхөн хүн ойлгодог ч PHP одоо RFC стандартыг өөртөө суулгасан байдаг шүүлтүүрийн баталгаажуулалтын функц.

if(filter_var("name@domain.com", FILTER_VALIDATE_EMAIL)) {
    // Valid
}
else {
    // Not Valid
}

Javascript дахь зөв имэйл хаягийн хувьд Regex

Та имэйл хаягийн бүтцийг шалгах хэт нарийн төвөгтэй стандарттай байх шаардлагагүй. Энд JavaScript ашиглах энгийн арга зам байна.

function validateEmail(email) 
{
    var re = /\\S+@\\S+/;
    return re.test(email);
}

Мэдээжийн хэрэг, энэ нь RFC стандартад нийцэхгүй тул та өгөгдлийн хэсэг бүрийг хүчинтэй эсэхийг баталгаажуулахыг хүсч болно. Энэхүү ердийн илэрхийлэл нь энд байгаа имэйл хаягуудын 99.9% -д нийцэх болно. Энэ нь стандартад бүрэн нийцээгүй ч бараг ямар ч төсөлд хэрэг болно.

function validateEmail(email) 
{
  var re = /^(?:[a-z0-9!#$%&amp;'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&amp;'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])$/;

  return re.test(email);
}

Эдгээр жишээнүүдийн кредит нь дараах руу очдог HTML.form.guide.

Douglas Karr

Douglas Karr нь үүсгэн байгуулагч юм Martech Zone дижитал өөрчлөлтийн чиглэлээр мэргэшсэн мэргэжилтэн. Даг бол а Үндсэн илтгэл ба маркетингийн олон нийтийн илтгэгч. Тэр бол VP бөгөөд түүний үүсгэн байгуулагч юм Highbridge, Salesforce технологийг ашиглан технологийн хөрөнгө оруулалтаа дижитал хэлбэрээр өөрчлөх, хамгийн их байлгахад туслах аж ахуйн нэгжүүдэд туслах чиглэлээр мэргэшсэн пүүс. Тэрээр дижитал маркетинг, бүтээгдэхүүний стратеги боловсруулсан Dell Technologies, GoDaddy, Борлуулалтын хүч, ВэбсайтуудБолон SmartFOCUS. Дуглас мөн зохиогч юм Дамми нарт зориулсан корпорацийн блог хөтлөх болон хамтран зохиогч Илүү сайн бизнесийн ном.

41 санал

  1. Олон имэйл хаяг бүхий маягтуудын хувьд class = ”emailaddress” хийвэл сайн байна. Хэрэв танд prototype.js номын сан байгаа бол (http://www.prototypejs.org) хуудсан дээр дараахь зүйлийг хийж болно:

    var valid = үнэн;
    var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
    $$ ('. emailaddress'). тус бүр (функц (имэйл) {
    хэрэв (! filter.test (email.value)) {
    анхааруулга (? Зөв имэйл хаяг оруулна уу?);
    имэйл. фокус;
    хүчинтэй = худал;
    }
    });
    буцах хүчинтэй;

  2. Энэ санаа надад таалагдаж байна, гэхдээ энэ ердийн илэрхийлэлийг ямар хууль ёсны имэйл хаягийг хүлээн авахгүй, хууль бус хаягийг зөвшөөрөх талаар тайлбаргүйгээр ашиглахыг би эргэлзэх болно.

    Энэ нь ямар тохиолдлуудад хамаарахгүй болохыг тайлбарлахын зэрэгцээ зохистой ажил хийдэг тогтмол хэллэгийн жишээг эндээс үзнэ үү.

    http://www.regular-expressions.info/email.html

    Миний хувийн сонголт бол ихэнх энгийн тохиолдлуудыг хамарч, татгалзахаас илүүтэй бусад бүх зүйлд анхааруулга өгөх явдал юм. Хэрэв Боб үнэхээр ирүүлэхийг хүсч байвал bob@com.museum харин биш bob@museum.com, яагаад түүнд зөвшөөрөхгүй байгаа юм бэ?

    1. Сайн уу, Рэг,

      Ange ашиглан Regex-ийг туршиж үзэх боломжтой Онлайн Regex шалгагч.

      Түүнчлэн, хэрэв та үүнийг баталгаажуулахыг хүсч байвал илүү их зүйлийг хийх боломжтой болно имэйл хаяг RFC-ийн дагуу хүчинтэй байна.

      Хүчин төгөлдөр бус имэйл хаяг оруулахыг зөвшөөрөхгүй байх хэд хэдэн шалтгаан бий.
      1. Таны буруу байсан эсэхээс үл хамааран хаягийг буруу оруулсан эсэхээс үл хамааран таны хүлээж байсан имэйл ирэхгүй байх үед тэд танд эгдүүцэх болно.
      2. Хэрэв com.museum нь хүчин төгөлдөр домэйн байсан бол, Yahoo! үүнийг ажиллуулж байсан - үсрэх имэйл хаягууд танай компанийн имэйлийг хүргэх нэр хүндэд сөргөөр нөлөөлнө. Энэ нь танай компанийн бүх имэйлийг блоклоход хүргэж болзошгүй юм.
      3. Хэрэв таны имэйлийн үйлчилгээ үзүүлэгч танд нэвтрэхийг зөвшөөрсөн бол bob@com.museum, мөн имэйл хаяг руу илгээсэн имэйл тус бүрийн төлбөрийг тэд үсрэлтээс болж захиалгаа цуцлах хүртэл төлөх ёстой. Хүчин төгөлдөр бус имэйл хаяг оруулахыг зөвшөөрөх бүх ESP-ээс зайлсхийх болно - тэд зүгээр л таны мөнгийг авч байна!

      Цаашлаад зогсоосон танд баярлалаа!
      Даг

  3. Илэрхийлэл бичих илүү хялбар арга байдаг:
    var regex = /^[a-z0-9\._-]+@([a-z0-9_-]+\.)+[a-z]{2,6}$/i;
    - Эцсийн тохируулагчтай бол i үсгийн дээд мужийг зааж өгөх шаардлагагүй болно.
    - Би юу ч мэдэхгүй TLD дотор нь тоо байна.
    Хажуугийн тэмдэглэл дээр би TLD-ийг 6 хүртэлх тэмдэгтээр зөвшөөрдөг. шинэ нь тогтмол ирдэг бөгөөд та хэзээ ч мэдэхгүй (ирээдүйд ирээдүйн хүмүүс дугаартай байж болно, би мэднэ).

  4. Сайн байна уу,

    Би үүнийг одоо байгаа хэлбэрээр бодит цаг хугацаанд ашиглахыг хүсч байна, гэхдээ энэ нь таны нууц үгийн баталгааг шалгагч шиг бодит цагт баталгаажихгүй байна ...

    Эсвэл би яг ийм увайгүй хүн үү, энэ нь миний хувьд үр дүнгээ өгөхгүй байна уу?

  5. Зүгээр л нэг мэдээлэл; Би Ade-ийн шийдлийг туршиж үзээгүй боловч дээрх загвар нь дотор нь апостроф бүхий имэйл хаягийг баталгаажуулахгүй байна .. (жишээлбэл, Mike.O'Hare@Whatever.com). Апостроф нь RFC 2821/2822 -> -д хүчинтэй http://www.faqs.org/rfcs/rfc2822.html

    HTH,
    Санжай

    1. Энэ нь мөн нэмэх тэмдэгттэй ажиллахгүй байгаа бөгөөд энэ нь хүчинтэй байна.

      харна уу: http://www.dominicsayers.com/isemail/

      Илүү том тэмдэглэл дээр энэ нь огтлох, буулгах кодын гол асуудал бөгөөд энэ нь өөрөө бүрэн хэлэлцүүлгийг хийх ёстой юм.

      @ robbyslaughter.com

  6. Багахан залруулга: Ердийн илэрхийлэл эцэст нь нэмэлт () + тэмдэгтэй байна. Үүнийг унших ёстой:

    ^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+[a-zA-Z0-9]{2,4}$

    Эхнийх нь дурын урттай TLD-ийг хүлээн зөвшөөрөх болно (энэ нь бусдын хэлсэнчлэн дотооддоо буруу зүйл биш, гэхдээ ийм зорилготой байсан бол илэрхийлэлийг богиносгож болно).

  7. Баярлалаа, гэхдээ энэ регекст алдаа гарсан байна. Би regex-ийн мэргэжилтэн биш боловч имэйлээр оролдож үзлээ:

    тест @ тест

    мөн энэ нь режексийг давсан юм ... "" -ээс зугтаж чадахгүй байгааг анзаарав. тийм байх ёстой:

    /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/

  8. Энэ бол ердөө л бүдүүлэг шалгалт, гэхдээ 100% үнэн зөв биш, жишээлбэл энэ нь зүгээр байх болно john_doe. @ gmail.com энэ нь үнэндээ хүчин төгөлдөр бус имэйлийн хаяг биш юм (имэйлийн орон нутгийн хэсэгт сүүлчийн тэмдэгт оруулахыг зөвшөөрөхгүй).
    Мөн энэ нь хүлээн авах болно john…doe@gmail.com дараалалд нэгээс илүү цэг байж болохгүй тул хүчингүй болно.

    Эдгээр нь миний анхны харцаар л анзаарсан зарим алдаанууд юм.
    Миний зорилго бол хэн нэгэн үүнийг аюулгүй байдлын шалгалт болгон ашиглахаар төлөвлөж байгаа тохиолдолд үүнийг онцолж хэлэхийг хүсэхгүй байна.

    Хүчин төгөлдөр имэйл хаягуудын талаар мэдээлэл авахыг хүсвэл дараах хаягаар орно уу. http://en.wikipedia.org/wiki/E-mail_address

  9. Дипак,

    Чухамдаа цэг рүү зугтах өргөдөл гаргах хэрэгтэй гэж бодож байна (“.”). Тиймээс, таны функц дараахь байх ёстой:

    функц баталгаажуулахEmail (id)
    {
    var emailPattern = /^(a-zA-Z0-9._-................+@(a-zA-Z0-9.- ]++ [a-zA-Z] {2,4}$/;
    буцах emailPattern.test (id);

    }

    Үгүй бол цэг нь "ямар ч тэмдэгт" гэсэн үг юм. Ийм онцгой дүрүүдээс зугтах хэрэгтэй гэдэгт би итгэдэг.

    Regards,

    Федерико

  10. функц validateEmail (fld) {
    var error = "";
    var tfld = обуд (fld.value); // хоосон зайг хассан талбарын утга
    var emailFilter = /^ [^@ ]+@(^@.]
    var illegalChars = / [(),;: \ ”[]] /;

    if (fld.value == “Имэйл хаягаа оруулна уу”) {

    error = “Имэйл хаягаа оруулна уу. n”;
    } else if (! emailFilter.test (tfld)) {// хууль бус тэмдэгт байгаа эсэхийг шалгах имэйлийг

    error = “Зөв имэйл хаяг оруулна уу. n”;
    } else if (fld.value.match (illegalChars)) {

    error = “Зөв имэйл хаяг оруулна уу. n”;
    }
    буцах алдаа;
    }

  11. функц validateEmail (fld) {
    var error = "";
    var tfld = обуд (fld.value); // хоосон зайг хассан талбарын утга
    var emailFilter = /^ [^@ ]+@(^@.]
    var illegalChars = / [(),;: \ ”[]] /;

    if (fld.value == “Имэйл хаягаа оруулна уу”) {

    error = “Имэйл хаягаа оруулна уу. n”;
    } else if (! emailFilter.test (tfld)) {// хууль бус тэмдэгт байгаа эсэхийг шалгах имэйлийг

    error = “Зөв имэйл хаяг оруулна уу. n”;
    } else if (fld.value.match (illegalChars)) {

    error = “Зөв имэйл хаяг оруулна уу. n”;
    }
    буцах алдаа;
    }

  12. функц validateEmail (fld) {
    var error = "";
    var tfld = обуд (fld.value); // хоосон зайг хассан талбарын утга
    var emailFilter = /^ [^@ ]+@(^@.]
    var illegalChars = / [(),;: \ ”[]] /;

    if (fld.value == “Имэйл хаягаа оруулна уу”) {

    error = “Имэйл хаягаа оруулна уу. n”;
    } else if (! emailFilter.test (tfld)) {// хууль бус тэмдэгт байгаа эсэхийг шалгах имэйлийг

    error = “Зөв имэйл хаяг оруулна уу. n”;
    } else if (fld.value.match (illegalChars)) {

    error = “Зөв имэйл хаяг оруулна уу. n”;
    }
    буцах алдаа;
    }

  13. функц validateEmail (fld) {
    var error = "";
    var tfld = обуд (fld.value); // хоосон зайг хассан талбарын утга
    var emailFilter = /^ [^@ ]+@(^@.]
    var illegalChars = / [(),;: \ ”[]] /;

    if (fld.value == “Имэйл хаягаа оруулна уу”) {

    error = “Имэйл хаягаа оруулна уу. n”;
    } else if (! emailFilter.test (tfld)) {// хууль бус тэмдэгт байгаа эсэхийг шалгах имэйлийг

    error = “Зөв имэйл хаяг оруулна уу. n”;
    } else if (fld.value.match (illegalChars)) {

    error = “Зөв имэйл хаяг оруулна уу. n”;
    }
    буцах алдаа;
    }

Чи юу гэж бодож байна?

Энэ сайт нь спамыг багасгахын тулд Akismet-ийг ашигладаг. Таны өгөгдлийг хэрхэн боловсруулдаг талаар суралц.

холбоотой зүйл