జావాస్క్రిప్ట్ మరియు రెగ్యులర్ ఎక్స్‌ప్రెషన్స్‌తో ఇమెయిల్ చిరునామాను తనిఖీ చేయండి

కొంతకాలం క్రితం నేను ఒక జావాస్క్రిప్ట్ మరియు రెగ్యులర్ ఎక్స్ప్రెషన్స్ ఉపయోగించి పాస్వర్డ్ స్ట్రెంత్ చెకర్. అదే గమనికలో, మీరు అదే రెగ్యులర్ ఎక్స్‌ప్రెషన్ (రీజెక్స్) పద్దతిని ఉపయోగించి ఇమెయిల్ చిరునామా యొక్క నిర్మాణాన్ని కూడా తనిఖీ చేయవచ్చు.

మీ ఫారమ్ ఎలిమెంట్ ఉంటే id = ”emailaddress” మరియు మీరు ఒక ఫారమ్‌ను జోడించండి onSubmit = ”రిటర్న్ చెక్ ఇమెయిల్ ();“, ఇది జావాస్క్రిప్ట్ ఫంక్షన్, ఇమెయిల్ చిరునామా చెల్లుబాటు అయ్యే నిర్మాణాన్ని కలిగి ఉంటే లేదా హెచ్చరికను తిరిగి ఇవ్వడానికి మీరు ఉపయోగించుకోవచ్చు:

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;
}
}

ఫంక్షన్ ఇమెయిల్ యొక్క విషయాలను ఫిల్టర్‌కు ధృవీకరిస్తుంది. పోలిక విఫలమైతే, ఇది ఒక హెచ్చరికను కనబరుస్తుంది మరియు ఫోకస్‌ను ఇమెయిల్ చిరునామా ఫీల్డ్‌కు తిరిగి ఇస్తుంది!

41 వ్యాఖ్యలు

  1. 1

    బహుళ ఇమెయిల్ చిరునామాలతో ఉన్న ఫారమ్‌ల కోసం, క్లాస్ = ”ఇమెయిల్‌డ్రెస్” చేయడం మంచిది. మీకు prototype.js లైబ్రరీ ఉంటే (http://www.prototypejs.org) పేజీలో చేర్చబడింది మీరు ఇలాంటివి చేయవచ్చు:

    var చెల్లుబాటు = నిజమైన;
    var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
    (('. emailaddress'). ప్రతి (ఫంక్షన్ (ఇమెయిల్) {
    if (! filter.test (email.value)) {
    హెచ్చరిక (? దయచేసి చెల్లుబాటు అయ్యే ఇమెయిల్ చిరునామాను ఇవ్వాలా?);
    ఇమెయిల్. ఫోకస్;
    చెల్లుబాటు అయ్యే = తప్పుడు;
    }
    });
    తిరిగి చెల్లుతుంది;

  2. 5
  3. 7

    నేను ఈ ఆలోచనను ఇష్టపడుతున్నాను, కాని ఇది ఏ చట్టపరమైన ఇమెయిల్ చిరునామాలను అంగీకరించదు మరియు ఏ చట్టవిరుద్ధ చిరునామాలను అనుమతిస్తుంది అనే వివరణ లేకుండా ఈ ప్రత్యేకమైన రెగ్యులర్ వ్యక్తీకరణను స్వీకరించడానికి నేను సంకోచించను.

    ఇది ఏ సందర్భాలను కవర్ చేయదు అనే వివరణతో పాటు మంచి పని చేసే సాధారణ వ్యక్తీకరణ యొక్క ఉదాహరణ కోసం, దీన్ని చూడండి:

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

    నా వ్యక్తిగత ప్రాధాన్యత ఏమిటంటే చాలా సాధారణ కేసులను కవర్ చేయడం మరియు దానిని తిరస్కరించడం కంటే మిగతా వాటికి హెచ్చరిక జారీ చేయడం. బాబ్ నిజంగా స్టో సమర్పించాలనుకుంటే bob@com.museum దానికన్నా bob@museum.com, అతన్ని ఎందుకు అనుమతించకూడదు?

    • 8

      హాయ్ రెగ్,

      మీరు రెజెక్స్‌ను ఉపయోగించి పరీక్షించవచ్చు ఆన్‌లైన్ రెగెక్స్ టెస్టర్.

      అలాగే, మీరు ఖచ్చితంగా నిర్ధారించుకోవాలనుకుంటే ఇంకా చాలా ఎక్కువ చేయవచ్చు ఇమెయిల్ చిరునామా RFC కి అనుగుణంగా చెల్లుతుంది.

      చెల్లని ఇమెయిల్ చిరునామాను నమోదు చేయడానికి ఎవరైనా అనుమతించకపోవడానికి కొన్ని కారణాలు ఉన్నాయి:
      1. వారు expected హించిన ఇమెయిల్ ద్వారా రానప్పుడు వారు మీపై కోపం తెచ్చుకుంటారు - ఇది మీ తప్పు కాదా అనే దానితో సంబంధం లేకుండా చిరునామా తప్పుగా నమోదు చేయబడింది.
      2. com.museum చెల్లుబాటు అయ్యే డొమైన్ అయితే, Yahoo! దీన్ని నిర్వహించింది - బౌన్స్ అయిన ఏదైనా ఇమెయిల్ చిరునామా ఇమెయిల్ డెలివరీ కోసం మీ కంపెనీ ప్రతిష్టపై ప్రతికూల ప్రభావాన్ని చూపుతుంది. ఇది మీ కంపెనీ ఇమెయిల్ అంతా బ్లాక్ చేయబడటానికి దారితీస్తుంది.
      3. మీ ఇమెయిల్ సర్వీస్ ప్రొవైడర్ మిమ్మల్ని ప్రవేశించడానికి అనుమతించినట్లయితే bob@com.museum, బౌన్స్ కారణంగా ఆ చిరునామాను చందాను తొలగించే వరకు ఆ ఇమెయిల్ చిరునామాకు పంపిన ప్రతి ఇమెయిల్‌కు కూడా మీరు చెల్లించాలి. అలాంటి చెల్లని ఇమెయిల్ చిరునామాను అనుమతించే ఏదైనా ESP గురించి నేను స్పష్టంగా తెలుసుకుంటాను - అవి మీ డబ్బును తీసుకుంటున్నాయి!

      ఆపినందుకు ధన్యవాదాలు!
      డౌ

  4. 9
  5. 10

    వ్యక్తీకరణ రాయడానికి చాలా సరళమైన మార్గం ఉంది:
    var regex = /^[a-z0-9\._-]+@([a-z0-9_-]+\.)+[a-z]{2,6}$/i;
    - ఫైనల్ మాడిఫైయర్ / i తో అప్పర్ కేస్ పరిధిని సూచించాల్సిన అవసరం లేదు.
    - నాకు ఏదీ తెలియదు TLD దానిలో సంఖ్యలతో.
    ఒక వైపు గమనికలో, నేను 6 అక్షరాల వరకు TLD ని అనుమతిస్తాను; క్రొత్తవి క్రమం తప్పకుండా వస్తాయి మరియు మీకు ఎప్పటికీ తెలియదు (భవిష్యత్తులో, వాటిలో కూడా సంఖ్యలు ఉండవచ్చు, నాకు తెలుసు).

  6. 11

    హాయ్

    నేను దీన్ని నిజ సమయంలో ఇప్పటికే ఉన్న రూపంలో ఉపయోగించటానికి ప్రయత్నిస్తున్నాను, కానీ ఇది మీ పాస్‌వర్డ్ బలం తనిఖీ వంటి నిజ సమయంలో ధృవీకరించినట్లు కనిపించడం లేదు…

    లేదా, నేను క్లూలెస్‌గా ఉన్నాను, అది నాకు పనికొస్తుందా?

  7. 12
  8. 13

    కేవలం ఒక FYI; నేను అడే యొక్క పరిష్కారాన్ని ప్రయత్నించలేదు కాని పై నమూనా ఇ-మెయిల్ చిరునామాలను వాటిలో అపోస్ట్రోఫాలతో ధృవీకరించదు .. (ఉదా., మైక్.ఓ'హేరేవాటర్.కామ్). RFC 2821/2822 -> ప్రకారం అపోస్ట్రోఫీలు చెల్లుతాయి http://www.faqs.org/rfcs/rfc2822.html

    HTH,
    సంజయ్

  9. 16
  10. 17

    ఒక చిన్న దిద్దుబాటు: సాధారణ వ్యక్తీకరణ చివరిలో అదనపు () + ను కలిగి ఉంటుంది. ఇది చదవాలి:

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

    మొదటిదానితో ఏదైనా పొడవు TLD లు అంగీకరించబడతాయి (ఇతరులు ఎత్తి చూపినట్లుగా ఇది తప్పు కాదు, కానీ అది ఉద్దేశం అయితే వ్యక్తీకరణను తగ్గించవచ్చు).

  11. 18

    దయచేసి ఈ కోడ్ యొక్క సాధారణ వ్యక్తీకరణ మరియు దాని పని ఎలా వివరించగలరా? .Test గురించి - పై కోడ్‌లో మీరు చేసినట్లుగా తనిఖీ చేయడానికి జావాస్క్రిప్ట్‌లో డిఫాల్ట్ స్టేట్‌మెంట్ ఉందా?

  12. 19

    ఇది ఇమెయిల్ వ్యక్తీకరణ కోసం ఒక చిన్న కోడ్-

    ఫంక్షన్ చెల్లుబాటు అయ్యే ఇమెయిల్ (ఐడి)
    {
    var emailPattern = /^ Leisurea-zA-Z0-9._-] +
    తిరిగి ఇమెయిల్ పాటర్న్.టెస్ట్ (ఐడి);

    }
    దీపక్ రాయ్
    వారణాసి

  13. 20

    ఇది ఇమెయిల్ వ్యక్తీకరణ కోసం ఒక చిన్న కోడ్-

    ఫంక్షన్ చెల్లుబాటు అయ్యే ఇమెయిల్ (ఐడి)
    {
    var emailPattern = /^ Leisurea-zA-Z0-9._-] +
    తిరిగి ఇమెయిల్ పాటర్న్.టెస్ట్ (ఐడి);

    }
    దీపక్ రాయ్
    వారణాసి

  14. 21
  15. 22
  16. 23

    ధన్యవాదాలు, కానీ ఈ రీజెక్స్‌లో లోపం ఉంది. నేను రీజెక్స్ నిపుణుడిని కాదు, కానీ నేను ఇమెయిల్‌ను ప్రయత్నించాను:

    పరీక్ష @ పరీక్ష

    మరియు అది రిజెక్స్ ను దాటింది ... ఇది "" నుండి తప్పించుకోవడం లేదని నేను గమనించాను. కనుక ఇది ఇలా ఉండాలి:

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

  17. 24
  18. 27

    బాగా, ఇది కేవలం కఠినమైన చెక్ కానీ 100% ఖచ్చితమైనది కాదు, ఉదాహరణకు ఇది సరే john_doe. @ gmail.com ఇది వాస్తవానికి చెల్లుబాటు అయ్యే ఇ-మెయిల్ చిరునామా కాదు (ఇ-మెయిల్ యొక్క స్థానిక భాగంలో డాట్ చివరి అక్షరంగా అనుమతించబడదు).
    ఇది అంగీకరిస్తుంది john…doe@gmail.com ఒక క్రమంలో ఒకటి కంటే ఎక్కువ చుక్కలు ఉండకూడదు కాబట్టి ఇది కూడా చెల్లదు.

    ఇవి మొదటి చూపులో నేను గమనించిన కొన్ని లోపాలు.
    ఎవరైనా దీన్ని భద్రతా తనిఖీగా ఉపయోగించాలని ఆలోచిస్తున్నట్లయితే - తగినంత భద్రత లేని సందర్భంలో దీనిని ఎత్తి చూపడం నా ఉద్దేశ్యం కాదు.

    చెల్లుబాటు అయ్యే ఇ-మెయిల్ చిరునామాల గురించి సమాచారం కోసం దీన్ని చూడండి: http://en.wikipedia.org/wiki/E-mail_address

  19. 28

    దీపక్,

    అసలైన, మీరు డాట్ (“.”) కోసం తప్పించుకోవాల్సిన అవసరం ఉందని నేను భావిస్తున్నాను. కాబట్టి, మీ ఫంక్షన్ బదులుగా ఉండాలి:

    ఫంక్షన్ చెల్లుబాటు అయ్యే ఇమెయిల్ (ఐడి)
    {
    var emailPattern = /^ Leisurea-zA-Z0-9._-] +
    తిరిగి ఇమెయిల్ పాటర్న్.టెస్ట్ (ఐడి);

    }

    లేకపోతే, డాట్ అంటే “ఏదైనా అక్షరం” అని అర్ధం. ఇలాంటి ప్రత్యేక పాత్రల నుండి తప్పించుకోవాల్సిన అవసరం ఉందని నా నమ్మకం.

    గౌరవంతో,

    ఫెడెరికో

  20. 29

    ఫంక్షన్ చెల్లుబాటు ఇమెయిల్ (fld) {
    var లోపం = ””;
    var tfld = ట్రిమ్ (fld.value); వైట్‌స్పేస్‌తో ఫీల్డ్ యొక్క // విలువ కత్తిరించబడింది
    var emailFilter = /^ Leisure^@ ]+@ Leisure ^.] +.
    var చట్టవిరుద్ధమైన చార్స్‌లు = / [() ,;: \ ”[]] /;

    if (fld.value == “మీ ఇమెయిల్ చిరునామాను నమోదు చేయండి”) {

    లోపం = “దయచేసి మీ ఇమెయిల్ చిరునామాను నమోదు చేయండి.
    } else if (! emailFilter.test (tfld)) {// అక్రమ అక్షరాల కోసం పరీక్ష ఇమెయిల్

    లోపం = “దయచేసి చెల్లుబాటు అయ్యే ఇమెయిల్ చిరునామాను నమోదు చేయండి. n”;
    } else if (fld.value.match (చట్టవిరుద్ధమైన చార్సెస్)) {

    లోపం = “దయచేసి చెల్లుబాటు అయ్యే ఇమెయిల్ చిరునామాను నమోదు చేయండి. n”;
    }
    తిరిగి లోపం;
    }

  21. 30

    ఫంక్షన్ చెల్లుబాటు ఇమెయిల్ (fld) {
    var లోపం = ””;
    var tfld = ట్రిమ్ (fld.value); వైట్‌స్పేస్‌తో ఫీల్డ్ యొక్క // విలువ కత్తిరించబడింది
    var emailFilter = /^ Leisure^@ ]+@ Leisure ^.] +.
    var చట్టవిరుద్ధమైన చార్స్‌లు = / [() ,;: \ ”[]] /;

    if (fld.value == “మీ ఇమెయిల్ చిరునామాను నమోదు చేయండి”) {

    లోపం = “దయచేసి మీ ఇమెయిల్ చిరునామాను నమోదు చేయండి.
    } else if (! emailFilter.test (tfld)) {// అక్రమ అక్షరాల కోసం పరీక్ష ఇమెయిల్

    లోపం = “దయచేసి చెల్లుబాటు అయ్యే ఇమెయిల్ చిరునామాను నమోదు చేయండి. n”;
    } else if (fld.value.match (చట్టవిరుద్ధమైన చార్సెస్)) {

    లోపం = “దయచేసి చెల్లుబాటు అయ్యే ఇమెయిల్ చిరునామాను నమోదు చేయండి. n”;
    }
    తిరిగి లోపం;
    }

  22. 31

    ఫంక్షన్ చెల్లుబాటు ఇమెయిల్ (fld) {
    var లోపం = ””;
    var tfld = ట్రిమ్ (fld.value); వైట్‌స్పేస్‌తో ఫీల్డ్ యొక్క // విలువ కత్తిరించబడింది
    var emailFilter = /^ Leisure^@ ]+@ Leisure ^.] +.
    var చట్టవిరుద్ధమైన చార్స్‌లు = / [() ,;: \ ”[]] /;

    if (fld.value == “మీ ఇమెయిల్ చిరునామాను నమోదు చేయండి”) {

    లోపం = “దయచేసి మీ ఇమెయిల్ చిరునామాను నమోదు చేయండి.
    } else if (! emailFilter.test (tfld)) {// అక్రమ అక్షరాల కోసం పరీక్ష ఇమెయిల్

    లోపం = “దయచేసి చెల్లుబాటు అయ్యే ఇమెయిల్ చిరునామాను నమోదు చేయండి. n”;
    } else if (fld.value.match (చట్టవిరుద్ధమైన చార్సెస్)) {

    లోపం = “దయచేసి చెల్లుబాటు అయ్యే ఇమెయిల్ చిరునామాను నమోదు చేయండి. n”;
    }
    తిరిగి లోపం;
    }

  23. 32

    ఫంక్షన్ చెల్లుబాటు ఇమెయిల్ (fld) {
    var లోపం = ””;
    var tfld = ట్రిమ్ (fld.value); వైట్‌స్పేస్‌తో ఫీల్డ్ యొక్క // విలువ కత్తిరించబడింది
    var emailFilter = /^ Leisure^@ ]+@ Leisure ^.] +.
    var చట్టవిరుద్ధమైన చార్స్‌లు = / [() ,;: \ ”[]] /;

    if (fld.value == “మీ ఇమెయిల్ చిరునామాను నమోదు చేయండి”) {

    లోపం = “దయచేసి మీ ఇమెయిల్ చిరునామాను నమోదు చేయండి.
    } else if (! emailFilter.test (tfld)) {// అక్రమ అక్షరాల కోసం పరీక్ష ఇమెయిల్

    లోపం = “దయచేసి చెల్లుబాటు అయ్యే ఇమెయిల్ చిరునామాను నమోదు చేయండి. n”;
    } else if (fld.value.match (చట్టవిరుద్ధమైన చార్సెస్)) {

    లోపం = “దయచేసి చెల్లుబాటు అయ్యే ఇమెయిల్ చిరునామాను నమోదు చేయండి. n”;
    }
    తిరిగి లోపం;
    }

  24. 33
  25. 34
  26. 35

    '. ఫోకస్' ఒక ఫంక్షన్, ఇది ఇలా ఉండాలి:

    email.focus ()

  27. 36

    '. ఫోకస్' ఒక ఫంక్షన్, ఇది ఇలా ఉండాలి:

    email.focus ()

  28. 37

    సంభ్రమాన్నికలిగించే

  29. 38

    రత్నం వంటి రచనలు .. జావాస్క్రిప్ట్‌లో రెగ్ ఎక్స్‌ప్రెషన్స్ యొక్క గొప్ప ఉపయోగం…

  30. 39
  31. 40

మీరు ఏమి ఆలోచిస్తాడు?

స్పామ్ తగ్గించడానికి ఈ సైట్ Akismet ను ఉపయోగిస్తుంది. మీ వ్యాఖ్య డేటా ఎలా ప్రాసెస్ చేయబడిందో తెలుసుకోండి.