சிறிது நேரத்திற்கு முன்பு நான் ஒரு ஜாவாஸ்கிரிப்ட் மற்றும் வழக்கமான வெளிப்பாடுகளைப் பயன்படுத்தி கடவுச்சொல் வலிமை சரிபார்ப்பு. அதே குறிப்பில், அதே வழக்கமான வெளிப்பாடு (ரீஜெக்ஸ்) முறையைப் பயன்படுத்தி ஒரு மின்னஞ்சல் முகவரியின் கட்டமைப்பையும் நீங்கள் சரிபார்க்கலாம்.
உங்கள் படிவ உறுப்பு இருந்தால் id = ”emailaddress” நீங்கள் ஒரு படிவத்தைச் சேர்க்கிறீர்கள் onSubmit = ”return checkEmail ();“, இது ஜாவாஸ்கிரிப்ட் செயல்பாடாகும், இது மின்னஞ்சல் முகவரிக்கு சரியான கட்டமைப்பைக் கொண்டிருக்கிறதா இல்லையா என்பதை எச்சரிக்கையை திருப்பித் தர நீங்கள் பயன்படுத்தலாம்:
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; } }
செயல்பாடு மின்னஞ்சலின் உள்ளடக்கங்களை வடிப்பானுக்கு சரிபார்க்கிறது. ஒப்பீடு தோல்வியுற்றால், அது ஒரு எச்சரிக்கையைத் தோற்றுவித்து, மின்னஞ்சல் முகவரி புலத்திற்கு கவனம் செலுத்துகிறது!
பல மின்னஞ்சல் முகவரிகளைக் கொண்ட படிவங்களுக்கு, வர்க்கம் = ”மின்னஞ்சல் அனுப்புதல்” செய்வது நல்லது. உங்களிடம் 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)) {
எச்சரிக்கை (? தயவுசெய்து சரியான மின்னஞ்சல் முகவரியை வழங்கவா?);
மின்னஞ்சல். கவனம்;
செல்லுபடியாகும் = பொய்;
}
});
திரும்ப செல்லுபடியாகும்;
நன்றி அடே! வகுப்புகள் மற்றும் ஜாவாஸ்கிரிப்ட் பற்றி நான் இன்னும் சிலவற்றைக் கற்றுக்கொள்ள வேண்டும்!
டக் அசல் உதாரணம் அருமையாக இருந்தது, ஆனால் இது உறைபனி! ஒரு வகுப்பைக் கொண்ட கூறுகளை இந்த முறையில் செயலாக்க முடியும் என்று எனக்குத் தெரியாது, மேலும் செயல்பாட்டு தொடரியல் இனிமையானது.
அடே மற்றும் அவரது குழு ஆச்சரியமாக இருக்கிறது!
நல்லது, சில பொல்லாத குளிர் ஸ்கிரிப்டுகளுக்கு நான் எப்போதும் உங்களை நம்பலாம்! 🙂
நன்றி டோனி!
நான் இந்த யோசனையை விரும்புகிறேன், ஆனால் இந்த குறிப்பிட்ட வழக்கமான வெளிப்பாட்டை எந்த சட்ட மின்னஞ்சல் முகவரிகள் ஏற்றுக்கொள்ளாது, எந்த சட்டவிரோத முகவரிகளை அனுமதிக்கிறது என்பதை விவரிக்காமல் தயங்குவேன்.
வழக்கமான வெளிப்பாட்டின் எடுத்துக்காட்டுக்கு, இது எந்த நிகழ்வுகளை உள்ளடக்காது என்பதற்கான விளக்கத்துடன் ஒழுக்கமான வேலையைச் செய்கிறது, இதைப் பார்க்கவும்:
http://www.regular-expressions.info/email.html
எனது தனிப்பட்ட விருப்பம் என்னவென்றால், பெரும்பாலான எளிய நிகழ்வுகளை மறைத்து, அதை நிராகரிப்பதை விட எல்லாவற்றிற்கும் ஒரு எச்சரிக்கையை விடுங்கள். பாப் உண்மையிலேயே ஸ்டோ சமர்ப்பிக்க விரும்பினால் bob@com.museum மாறாக bob@museum.com, ஏன் அவரை விடக்கூடாது?
ஹாய் ரெக்,
நீங்கள் ஒரு பயன்படுத்தி Regex சோதிக்க முடியும் ஆன்லைன் ரீஜெக்ஸ் சோதனையாளர்.
மேலும், நீங்கள் உறுதிப்படுத்த விரும்பினால் நிச்சயமாக இன்னும் நிறைய செய்ய முடியும் மின்னஞ்சல் முகவரி RFC க்கு இணங்க செல்லுபடியாகும்.
தவறான மின்னஞ்சல் முகவரியை யாராவது நுழைய அனுமதிக்காததற்கு சில காரணங்கள் உள்ளன:
1. அவர்கள் எதிர்பார்த்த மின்னஞ்சல் கிடைக்காதபோது அவர்கள் உங்களிடம் கோபப்படுவார்கள் - உங்கள் தவறு இல்லையா என்பதைப் பொருட்படுத்தாமல் முகவரி தவறாக உள்ளிடப்பட்டது.
2. com.museum செல்லுபடியாகும் களமாக இருந்தால், Yahoo! அதை இயக்குகிறது - எதிர்க்கும் எந்த மின்னஞ்சல் முகவரியும் மின்னஞ்சல் விநியோகத்திற்கான உங்கள் நிறுவனத்தின் நற்பெயருக்கு எதிர்மறையான தாக்கத்தை ஏற்படுத்தும். இது உங்கள் நிறுவனத்தின் மின்னஞ்சல் அனைத்தும் தடுக்கப்படுவதற்கு வழிவகுக்கும்.
3. உங்கள் மின்னஞ்சல் சேவை வழங்குநர் உங்களை நுழைய அனுமதித்தால் bob@com.museum, அந்த மின்னஞ்சல் முகவரிக்கு அனுப்பப்படும் ஒவ்வொரு மின்னஞ்சலுக்கும் பவுன்ஸ் காரணமாக அந்த முகவரியை குழுவிலகும் வரை நீங்கள் பணம் செலுத்துவீர்கள். அது போன்ற தவறான மின்னஞ்சல் முகவரியை அனுமதிக்கும் எந்த ஈஎஸ்பியையும் நான் தெளிவாகத் தெரிந்துகொள்வேன் - அவர்கள் உங்கள் பணத்தை எடுத்துக்கொள்கிறார்கள்!
நிறுத்தியதற்கு நன்றி!
டக்
சரியானது, எனக்குத் தேவையானது!
வெளிப்பாட்டை எழுத மிகவும் எளிமையான வழி உள்ளது:
var regex = /^[a-z0-9\._-]+@([a-z0-9_-]+\.)+[a-z]{2,6}$/i;
- இறுதி மாற்றியமைப்பாளருடன் / நான் மேல் வழக்கு வரம்பைக் குறிக்க வேண்டிய அவசியமில்லை.
- எனக்கு எதுவும் தெரியாது டிஎல்டி அதில் எண்களுடன்.
ஒரு பக்க குறிப்பில், நான் 6 எழுத்துகள் வரை TLD ஐ அனுமதிக்கிறேன்; புதியவை தவறாமல் வந்து சேரும், உங்களுக்குத் தெரியாது (சரி, எதிர்காலத்தில் எண்களில் கூட எண்கள் இருக்கலாம், எனக்குத் தெரியும்).
அங்கு hi,
இதை நிகழ்நேரத்தில் ஏற்கனவே உள்ள வடிவத்தில் பயன்படுத்த முயற்சிக்கிறேன், ஆனால் இது உங்கள் கடவுச்சொல் வலிமை சரிபார்ப்பைப் போல நிகழ்நேரத்தில் சரிபார்க்கப்படுவதாகத் தெரியவில்லை…
அல்லது, நான் அந்த துல்லியமற்றவனா, அது எனக்கு வேலை செய்யுமா?
btw, நீங்கள் இங்கே என்ன நடக்கிறது என்பது எனக்கு மிகவும் பிடிக்கும், உங்கள் பயிற்சிகள் மிகவும் எளிமையானவை, நான் இதை நிச்சயமாக புக்மார்க்கு செய்வேன்….
ஒரு FYI; நான் அடேயின் தீர்வை முயற்சிக்கவில்லை, ஆனால் மேலே உள்ள முறை மின்னஞ்சல் முகவரிகளை அவற்றில் உள்ள அபோஸ்ட்ரோப்களுடன் சரிபார்க்கவில்லை .. (எ.கா., மைக்.ஓ'ஹேர் @ வாட்.காம்). RFC 2821/2822 -> க்கு அப்போஸ்ட்ரோப்கள் செல்லுபடியாகும் http://www.faqs.org/rfcs/rfc2822.html
HTH,
சஞ்சய்
இது பிளஸ் எழுத்தை கையாளத் தெரியவில்லை, இது செல்லுபடியாகும்.
பார்க்க: http://www.dominicsayers.com/isemail/
ஒரு பெரிய குறிப்பில், இது குறியீட்டை வெட்டுவதற்கும் ஒட்டுவதற்கும் ஒரு முக்கிய சிக்கலாகும், இது ஒரு முழு விவாதத்திற்கும் தகுதியானது.
@ robbyslaughter.com
நீ நட்ஸ் ..
அது நன்றாக வேலை செய்கிறது ..! @
வேர்ட்பிரஸ் குறித்த கருத்துகளில் போலி மின்னஞ்சல் முகவரிகளைத் தவிர்ப்பதற்கு ஒரு தீர்வைக் காண முடிந்தால் நன்றாக இருக்கும்
ஒரு சிறிய திருத்தம்: வழக்கமான வெளிப்பாட்டின் முடிவில் கூடுதல் () + உள்ளது. இது படிக்க வேண்டும்:
^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+[a-zA-Z0-9]{2,4}$
முதலாவதாக எந்த நீள டி.எல்.டி களும் ஏற்றுக்கொள்ளப்படும் (மற்றவர்கள் சுட்டிக்காட்டியுள்ளபடி இது தவறானதல்ல, ஆனால் அது நோக்கமாக இருந்தால் வெளிப்பாடு சுருக்கப்படலாம்).
இந்த குறியீட்டின் வழக்கமான வெளிப்பாடு மற்றும் அது எவ்வாறு செயல்படுகிறது என்பதை விளக்க முடியுமா? .Test ஐப் பற்றியும் - மேலே உள்ள குறியீட்டில் நீங்கள் செய்ததைப் போன்றவற்றைச் சரிபார்க்க ஜாவாஸ்கிரிப்டில் இயல்புநிலை அறிக்கையா?
இது மின்னஞ்சல் வெளிப்பாட்டிற்கான ஒரு குறுகிய குறியீடு-
செயல்பாடு செல்லுபடியாகும் மின்னஞ்சல் (ஐடி)
{
var emailPattern = /^ Leisurea-zA-Z0-9._-] + @ Leisurea-zA-Z0-9.- ]+.
return emailPattern.test (ஐடி);
}
தீபக் ராய்
வாரணாசி
இது மின்னஞ்சல் வெளிப்பாட்டிற்கான ஒரு குறுகிய குறியீடு-
செயல்பாடு செல்லுபடியாகும் மின்னஞ்சல் (ஐடி)
{
var emailPattern = /^ Leisurea-zA-Z0-9._-] + @ Leisurea-zA-Z0-9.- ]+.
return emailPattern.test (ஐடி);
}
தீபக் ராய்
வாரணாசி
நன்றி நிறைய மாமா. அது எனக்கு நிறைய உதவியது
அமண்டா
குறியீடுக்கு நன்றி!
நன்றி, ஆனால் இந்த ரீஜெக்ஸில் பிழை உள்ளது. நான் ஒரு ரீஜெக்ஸ் நிபுணர் அல்ல, ஆனால் நான் மின்னஞ்சலை முயற்சித்தேன்:
சோதனை @ சோதனை
அது ரீஜெக்ஸைக் கடந்து சென்றது ... அது "தப்பிக்கவில்லை" என்பதை நான் கவனித்தேன். எனவே அது இருக்க வேண்டும்:
/^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/
நான் உருண்டு
/^\\w+( Leisure\\.-]? /
மற்றும் .info பற்றி என்ன?
ஓ ஷிட்… 3 ஆண்டுகளுக்கு முன்பு? : எஸ்
சரி, இது ஒரு தோராயமான காசோலை, ஆனால் 100% துல்லியமானது அல்ல, எடுத்துக்காட்டாக இது சரியாக இருக்கும் john_doe. @ gmail.com இது உண்மையில் செல்லுபடியாகும் மின்னஞ்சல் முகவரி அல்ல (மின்னஞ்சலின் உள்ளூர் பகுதியில் புள்ளி கடைசி எழுத்தாக அனுமதிக்கப்படாது).
அது ஏற்றுக் கொள்ளும் john…doe@gmail.com ஒரு வரிசையில் ஒன்றுக்கு மேற்பட்ட புள்ளிகள் இருக்க முடியாது என்பதால் இது தவறானது.
முதல் பார்வையில் நான் கவனித்த சில குறைபாடுகள் இவை.
யாராவது இதை ஒரு பாதுகாப்பு காசோலையாக பயன்படுத்த திட்டமிட்டால், இதைச் சுட்டிக்காட்டுவது எனது நோக்கம் அல்ல - போதுமான அளவு பாதுகாப்பாக இல்லை.
செல்லுபடியாகும் மின்னஞ்சல் முகவரிகள் பற்றிய தகவலுக்கு இதைப் பாருங்கள்: http://en.wikipedia.org/wiki/E-mail_address
தீபக்,
உண்மையில், நீங்கள் புள்ளிக்கு (“.”) தப்பிக்க விண்ணப்பிக்க வேண்டும் என்று நினைக்கிறேன். எனவே, அதற்கு பதிலாக உங்கள் செயல்பாடு இருக்க வேண்டும்:
செயல்பாடு செல்லுபடியாகும் மின்னஞ்சல் (ஐடி)
{
var emailPattern = /^ Leisurea-zA-Z0-9._-] + @ Leisurea-zA-Z0-9.- ]+.
return emailPattern.test (ஐடி);
}
இல்லையெனில், புள்ளி என்பது “எந்த எழுத்தையும்” குறிக்கும். அத்தகைய சிறப்பு கதாபாத்திரங்கள் தப்பிக்க வேண்டும் என்று நான் நம்புகிறேன்.
அன்புடன்,
ஃபெடரிகோ
செயல்பாடு செல்லுபடியாகும் மின்னஞ்சல் (fld) {
var பிழை = ””;
var tfld = டிரிம் (fld.value); // இடைவெளியுடன் புலத்தின் மதிப்பு முடக்கப்பட்டுள்ளது
var emailFilter = /^ Leisure^@ ]+@ Leisure^@. ]+. Leisure^@] *ww$/;
var சட்டவிரோதங்கள் = / [(),;: \ ”[]] /;
if (fld.value == “உங்கள் மின்னஞ்சல் முகவரியை உள்ளிடுக”) {
பிழை = “தயவுசெய்து உங்கள் மின்னஞ்சல் முகவரியை உள்ளிடவும். n”;
} else என்றால் (! emailFilter.test (tfld)) {// சட்டவிரோத எழுத்துக்களுக்கான சோதனை மின்னஞ்சல்
பிழை = “தயவுசெய்து சரியான மின்னஞ்சல் முகவரியை உள்ளிடவும். n”;
} else if (fld.value.match (சட்டவிரோதங்கள்)) {
பிழை = “தயவுசெய்து சரியான மின்னஞ்சல் முகவரியை உள்ளிடவும். n”;
}
திரும்ப பிழை;
}
செயல்பாடு செல்லுபடியாகும் மின்னஞ்சல் (fld) {
var பிழை = ””;
var tfld = டிரிம் (fld.value); // இடைவெளியுடன் புலத்தின் மதிப்பு முடக்கப்பட்டுள்ளது
var emailFilter = /^ Leisure^@ ]+@ Leisure^@. ]+. Leisure^@] *ww$/;
var சட்டவிரோதங்கள் = / [(),;: \ ”[]] /;
if (fld.value == “உங்கள் மின்னஞ்சல் முகவரியை உள்ளிடுக”) {
பிழை = “தயவுசெய்து உங்கள் மின்னஞ்சல் முகவரியை உள்ளிடவும். n”;
} else என்றால் (! emailFilter.test (tfld)) {// சட்டவிரோத எழுத்துக்களுக்கான சோதனை மின்னஞ்சல்
பிழை = “தயவுசெய்து சரியான மின்னஞ்சல் முகவரியை உள்ளிடவும். n”;
} else if (fld.value.match (சட்டவிரோதங்கள்)) {
பிழை = “தயவுசெய்து சரியான மின்னஞ்சல் முகவரியை உள்ளிடவும். n”;
}
திரும்ப பிழை;
}
செயல்பாடு செல்லுபடியாகும் மின்னஞ்சல் (fld) {
var பிழை = ””;
var tfld = டிரிம் (fld.value); // இடைவெளியுடன் புலத்தின் மதிப்பு முடக்கப்பட்டுள்ளது
var emailFilter = /^ Leisure^@ ]+@ Leisure^@. ]+. Leisure^@] *ww$/;
var சட்டவிரோதங்கள் = / [(),;: \ ”[]] /;
if (fld.value == “உங்கள் மின்னஞ்சல் முகவரியை உள்ளிடுக”) {
பிழை = “தயவுசெய்து உங்கள் மின்னஞ்சல் முகவரியை உள்ளிடவும். n”;
} else என்றால் (! emailFilter.test (tfld)) {// சட்டவிரோத எழுத்துக்களுக்கான சோதனை மின்னஞ்சல்
பிழை = “தயவுசெய்து சரியான மின்னஞ்சல் முகவரியை உள்ளிடவும். n”;
} else if (fld.value.match (சட்டவிரோதங்கள்)) {
பிழை = “தயவுசெய்து சரியான மின்னஞ்சல் முகவரியை உள்ளிடவும். n”;
}
திரும்ப பிழை;
}
செயல்பாடு செல்லுபடியாகும் மின்னஞ்சல் (fld) {
var பிழை = ””;
var tfld = டிரிம் (fld.value); // இடைவெளியுடன் புலத்தின் மதிப்பு முடக்கப்பட்டுள்ளது
var emailFilter = /^ Leisure^@ ]+@ Leisure^@. ]+. Leisure^@] *ww$/;
var சட்டவிரோதங்கள் = / [(),;: \ ”[]] /;
if (fld.value == “உங்கள் மின்னஞ்சல் முகவரியை உள்ளிடுக”) {
பிழை = “தயவுசெய்து உங்கள் மின்னஞ்சல் முகவரியை உள்ளிடவும். n”;
} else என்றால் (! emailFilter.test (tfld)) {// சட்டவிரோத எழுத்துக்களுக்கான சோதனை மின்னஞ்சல்
பிழை = “தயவுசெய்து சரியான மின்னஞ்சல் முகவரியை உள்ளிடவும். n”;
} else if (fld.value.match (சட்டவிரோதங்கள்)) {
பிழை = “தயவுசெய்து சரியான மின்னஞ்சல் முகவரியை உள்ளிடவும். n”;
}
திரும்ப பிழை;
}
செயல்பாடு டிரிம் (கள்)
{
திரும்ப s.replace (/ ^ s + | s + $ /, ”);
}
செயல்பாடு டிரிம் (கள்)
{
திரும்ப s.replace (/ ^ s + | s + $ /, ”);
}
'.போகஸ்' என்பது ஒரு செயல்பாடு, அது இருக்க வேண்டும்:
email.focus ()
'.போகஸ்' என்பது ஒரு செயல்பாடு, அது இருக்க வேண்டும்:
email.focus ()
அற்புதமான
ரத்தினம் போன்ற படைப்புகள் .. ஜாவாஸ்கிரிப்டில் ரெக் வெளிப்பாடுகளின் சிறந்த பயன்பாடு…
ரத்தினத்தில் இட்டா கிராக்…
“Mmm @ mmm..com” முகவரி ஏற்றுக்கொள்ளப்படும். ஆனால் இரண்டு புள்ளிகள் ஒன்றாக செல்லுபடியாகாது.
ஃபெல்லாஸ், பயன்படுத்தவும். இதற்கு எந்த JS சரிபார்ப்பும் தேவையில்லை.
ஆனால் நவீன உலாவிகளுடன் மட்டுமே இயங்குகிறது. துரதிர்ஷ்டவசமாக, உலகம் இன்னும் பிடிக்கவில்லை. -
ஐபோனுக்கான அஞ்சல் பெட்டியிலிருந்து அனுப்பப்பட்டது