یو څه موده دمخه ما یو د جاواسکریپټ او منظمې څرګندونې کارولو سره د پټنوم ځواک چیکر. په ورته یادداشت کې ، تاسو کولی شئ د ورته بریښنالیک اظهار (ریجیکس) میتودولوژی کارولو سره د بریښنالیک پتې جوړښت هم چیک کړئ.
که ستاسو د فارم عنصر لري id = "بریښنالیک پته" او تاسو یوه فورمه اضافه کړه 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; } }
فنکشن د بریښنالیک مینځپانګې د فلټر کولو سره تاییدوي. که پرتله کول ناکام شي ، نو دا خبرتیا رامینځته کوي او تمرکز د بریښنالیک پتې ساحې ته بیرته راستنوي!
د ډیری بریښنالیک پتونو سره د فارمونو لپاره ، دا به ښه وي چې ټولګي = "بریښنالیک پتې" ترسره کړئ. که تاسو د پروټوټایپ.ج کتابتون لرئ (http://www.prototypejs.org) پا theه کې شامل شوي تاسو د دې په څیر یو څه کولی شئ:
var માન્ય = ریښتینی؛
var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
$$ ('. emailaddress'). هر یو (فنکشن (بریښنالیک) {
که (! فلټر.ټیسټ (بریښنالیک. ارزښت)) {
خبرداری (؟ مهرباني وکړئ د اعتبار وړ بریښنالیک آدرس ورکړئ؟)؛
بریښنالیک.
اعتبار = غلط؛
}
})؛
اعتبار راستول؛
مننه ایډي! زه د صنفونو او جاواسکریپټ په اړه نور ډیر څه زده کولو ته اړتیا لرم!
د ډګ اصلي مثال ښه و ، مګر دا یو کنګل دی! زه نه پوهیږم چې تاسو کولی شئ پدې ډول د ټولګي درلودو عناصرو پروسس وکړئ ، او فعال ترکیب یې خوږ دی.
ایډ او د هغه ټیم حیرانونکی دی!
ښه ، زه تل تاسو ته د ځینې بد سړو سکریپټونو لپاره حساب کولی شم! 🙂
مننه ټوني!
زه نظر خوښوم ، مګر زه به د دې ځانګړي منظم نظر اختیارولو څخه ډډه وکړم پرته لدې چې د کوم قانوني بریښنالیک پته چې دا یې نه مني او کوم غیرقانوني ادرس ورته اجازه ورکوي.
د منظم بیان لپاره د مثال لپاره چې یوه ښه دنده ترسره کوي او د دې وضاحت سره چې کومې قضیې نه پوښتي ، دا وګورئ:
http://www.regular-expressions.info/email.html
زما شخصي غوره توب د ډیری ساده قضیو پوښښ کول دي او د دې رد کولو پرځای د هرڅه لپاره یو خبرداری خپور کړئ. که باب په ریښتیا سره وستایه bob@com.museum د دې پرځای bob@museum.com، ولې هغه اجازه مه ورکوئ؟
سلام ریګ ،
تاسو کولی شئ د ریګیکس په کارولو سره ازموینه وکړئ د آنلاین ریجیکس ټیسټر.
همدارنګه ، دقیقا ډیر نور څه دي چې کیدی شي که تاسو وغواړئ یو ډاډ ترلاسه کړئ بریښنالیک د RFC سره سم اعتبار لري.
یو څو دلیلونه شتون لري چې چا ته اجازه ورنکړي چې غیرقانوني بریښنالیک ته دننه شي:
1. دوی به تاسو په قهر شي کله چې د بریښنالیک له لارې دوی تمه نه کیږي - پرته لدې چې دا ستاسو غلطي وه چې ایا پته په غلط ډول داخل شوې وه.
2. که com.museum یو معتبر ډومین و او ، راځئ چې ووایو ، یاهو! دا یې چلول - کوم بریښنالیک پته چې اچول شوی به د بریښنالیک تحویل لپاره ستاسو د شرکت شهرت باندې منفي اغیزه وکړي. دا ممکن ستاسو د ټول شرکت بریښنالیک بلاک کیدو لامل شي.
3. که ستاسو د بریښنالیک خدمت چمتو کونکي تاسو ته د ننوتلو اجازه درکړي bob@com.museum، تاسو د هر بریښنالیک لپاره پیسې هم ورکوئ چې پدې بریښنالیک پتې ته لیږل شوي تر هغه چې دوی د ادرسونو له امله دا پته غیرصرف کړي. زه به د هر ESP روښانه کړم چې د ورته غیرقانوني بریښنالیک پتې ته اجازه ورکړي - دوی یوازې ستاسو پیسې اخلي!
د درولو لپاره مننه!
دوګ
کامل ، یوازې هغه څه چې ما ورته اړتیا درلوده!
د بیان لیکلو لپاره خورا اسانه لار شتون لري:
var regex = /^[a-z0-9\._-]+@([a-z0-9_-]+\.)+[a-z]{2,6}$/i;
- د وروستي تغیر کونکي سره / i اړتیا نلري د پورتنۍ قضیې سلسله په ګوته کړي.
- زه د هیڅ څخه نه پیژنم TLD په کې د شمېرو سره.
د یوې غاړې یادونه ، زه اجازه لرم TLD تر 6 چارتونو سره؛ نوي کسان په منظم ډول راشي او تاسو هیڅکله نه پوهیږئ (ښه ، د راتلونکي راتلونکي خلک حتی پدې کې شمیر هم لري ، زه پوهیږم).
پخیر،
زه هڅه کوم چې دا په ریښتیني وخت کې په موجوده ب inه وکاروم ، مګر دا داسې نه بریښي چې په ریښتیني وخت کې ستاسو د رمز ځواک چیکر په څیر تصدیق وکړي ...
یا ، ایا زه یوازې هغه بې خبره یم ، او دا زما لپاره کار کوي؟
btw ، زه واقعیا هغه څه خوښوم چې تاسو دلته پرمخ ځئ ، ستاسو درسونه خورا ساده دي ، زه به حتما د دې یو کتاب نښه کړم ....
یوازې یو FYI؛ ما د ایډ حل نه دی آزمویلی مګر پورتنۍ ب themه یې په بریښنالیک پتې په دوی کې د اګستروفو سره اعتبار نلري. Apostrophes د 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}$
د لومړي سره به هر لمریز TLDs ومنل شي (کوم چې په داخلي توګه غلط ندی لکه څنګه چې نورو اشاره کړې ، مګر که دا نیت وي نو بیان به لنډ شي).
ایا تاسو کولی شئ د دې کوډ منظم بیان تشریح کړئ او دا څنګه کار کوي؟ د .ټیسټ په اړه هم - ایا په جاواسکریپټ کې د ډیفالټ بیان دی ترڅو هغه شیان چیک کړئ چې تاسو یې په پورتني کوډ کې کړي؟
دا د بریښنالیک بیان لپاره لنډ کوډ دی -
فعالیت ویلیټ ای میل (ID)
{
var بریښنالیک پیټرن = /^رلa-zA-Z0-9._- در+ +@یلها-zA-Z0-9.- لیک +.ځله- زا- زوت{2,4،XNUMX}$/؛
بریښنالیک ته راستنیدنه.
}
دیپک رائے
وارانسي
دا د بریښنالیک بیان لپاره لنډ کوډ دی -
فعالیت ویلیټ ای میل (ID)
{
var بریښنالیک پیټرن = /^رلa-zA-Z0-9._- در+ +@یلها-zA-Z0-9.- لیک +.ځله- زا- زوت{2,4،XNUMX}$/؛
بریښنالیک ته راستنیدنه.
}
دیپک رائے
وارانسي
مننه ډیره تره. دې ما سره ډیره مرسته وکړه 🙂
Amanda
د کوډ لپاره مننه!
مننه ، مګر پدې کار کې یوه ستونزه شتون لري. زه د ریګکس کارپوه نه یم ، مګر ما بریښنالیک هڅه کړې:
ټیسټ @ ټیسټ
او دا ریجیکس تېر شو ... ما ولیدل چې د دې څخه تیښته نسته. " نو دا باید وي:
/^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/
زه ورسره مخم
/^\\w+( بله\\.- پوښ؟\\w+)*@\\w+( পরিবার\\.- درته ؟؟ww))*(\\.\\w{2,3،XNUMX})+$ /
او .info څه شی دی؟
او داسی ...… کاله دمخه؟ : ایس
ښه ، دا یوازې یو ارزانه چک دی مګر 100 accurate درست ندی ، د مثال په توګه دا به ښه وي جان_ډو. @ gmail.com کوم چې په حقیقت کې د بریښنالیک بریښنالیک پته نه ده (د بریښنالیک سیمه ایز برخه کې د وروستي کرکټر په توګه dot اجازه نلري)
همدارنګه دا به ومني john…doe@gmail.com دا هم باطله ده ځکه چې دلته په ترتیب کې له یوټ څخه زیات نشي.
دا یوازې یو څه نیمګړتیاوې دي چې ما په لومړي لید کې ولیدل.
زما نیت یوازې دا نه وهل کیږي چې دا په ګوته کړي که چیرې یو څوک پالن لري چې دا د امنیتی چیک په توګه وکاروي - کافي خوندي نه وي.
د اعتبار وړ بریښنالیک پتونو په اړه د معلوماتو لپاره دا وګورئ: http://en.wikipedia.org/wiki/E-mail_address
دیپک ،
په حقیقت کې ، زه فکر کوم چې تاسو اړتیا لرئ د ټایټ (".") لپاره د فرار غوښتنه وکړئ. نو ، ستاسو فنکشن باید ، پرځای وي:
فعالیت ویلیټ ای میل (ID)
{
var بریښنالیک پیټرن = /^رلa-zA-Z0-9._- در+ +@یلها-zA-Z0-9.- لیک +.ځله- زا- زوت{2,4،XNUMX}$/؛
بریښنالیک ته راستنیدنه.
}
که نه نو ، نقطه به د "هر کرکټر" معنی وي. زه باور لرم داسې ځانګړي حروف باید وتښتي.
په درناوي،
فیډروکو
فعالیت ویلیټ ای میل (fld) {
var غلطي = ""؛
var tfld = ټرم (fld.value)؛ // د سپین قیمت سره د ساحې ارزښت له مینځه وړل
د بریښنالیک فیلټر = /^ده^پوښ +@یله^@.ته ++ ځنډ.
var غیرقانوني چرس = / [()،؛: \ "[]] /؛
که (fld.value == "خپل بریښنالیک پته دننه کړئ") {
غلطي = "مهرباني وکړئ خپل بریښنالیک آدرس ورکړئ .n"؛
} بل که (! بریښنالیک فیلټر.ټیسټ (tfld)) illegal // د ناقانونه کرکټرونو لپاره د ازموینې بریښنالیک
غلطي = "مهرباني وکړئ یو معتبر بریښنالیک آدرس ورکړئ .n"؛
} بل که (fld.value.match (غیرقانوني چارس)) {
غلطي = "مهرباني وکړئ یو معتبر بریښنالیک آدرس ورکړئ .n"؛
}
راستنیدنه
}
فعالیت ویلیټ ای میل (fld) {
var غلطي = ""؛
var tfld = ټرم (fld.value)؛ // د سپین قیمت سره د ساحې ارزښت له مینځه وړل
د بریښنالیک فیلټر = /^ده^پوښ +@یله^@.ته ++ ځنډ.
var غیرقانوني چرس = / [()،؛: \ "[]] /؛
که (fld.value == "خپل بریښنالیک پته دننه کړئ") {
غلطي = "مهرباني وکړئ خپل بریښنالیک آدرس ورکړئ .n"؛
} بل که (! بریښنالیک فیلټر.ټیسټ (tfld)) illegal // د ناقانونه کرکټرونو لپاره د ازموینې بریښنالیک
غلطي = "مهرباني وکړئ یو معتبر بریښنالیک آدرس ورکړئ .n"؛
} بل که (fld.value.match (غیرقانوني چارس)) {
غلطي = "مهرباني وکړئ یو معتبر بریښنالیک آدرس ورکړئ .n"؛
}
راستنیدنه
}
فعالیت ویلیټ ای میل (fld) {
var غلطي = ""؛
var tfld = ټرم (fld.value)؛ // د سپین قیمت سره د ساحې ارزښت له مینځه وړل
د بریښنالیک فیلټر = /^ده^پوښ +@یله^@.ته ++ ځنډ.
var غیرقانوني چرس = / [()،؛: \ "[]] /؛
که (fld.value == "خپل بریښنالیک پته دننه کړئ") {
غلطي = "مهرباني وکړئ خپل بریښنالیک آدرس ورکړئ .n"؛
} بل که (! بریښنالیک فیلټر.ټیسټ (tfld)) illegal // د ناقانونه کرکټرونو لپاره د ازموینې بریښنالیک
غلطي = "مهرباني وکړئ یو معتبر بریښنالیک آدرس ورکړئ .n"؛
} بل که (fld.value.match (غیرقانوني چارس)) {
غلطي = "مهرباني وکړئ یو معتبر بریښنالیک آدرس ورکړئ .n"؛
}
راستنیدنه
}
فعالیت ویلیټ ای میل (fld) {
var غلطي = ""؛
var tfld = ټرم (fld.value)؛ // د سپین قیمت سره د ساحې ارزښت له مینځه وړل
د بریښنالیک فیلټر = /^ده^پوښ +@یله^@.ته ++ ځنډ.
var غیرقانوني چرس = / [()،؛: \ "[]] /؛
که (fld.value == "خپل بریښنالیک پته دننه کړئ") {
غلطي = "مهرباني وکړئ خپل بریښنالیک آدرس ورکړئ .n"؛
} بل که (! بریښنالیک فیلټر.ټیسټ (tfld)) illegal // د ناقانونه کرکټرونو لپاره د ازموینې بریښنالیک
غلطي = "مهرباني وکړئ یو معتبر بریښنالیک آدرس ورکړئ .n"؛
} بل که (fld.value.match (غیرقانوني چارس)) {
غلطي = "مهرباني وکړئ یو معتبر بریښنالیک آدرس ورکړئ .n"؛
}
راستنیدنه
}
د فعالیت ټرېمونه
{
راستنول s.replace (/ ^ s + | s + $ /، ")؛
}
د فعالیت ټرېمونه
{
راستنول s.replace (/ ^ s + | s + $ /، ")؛
}
د '. فوکس' یو فنکشن دی ، دا باید وي:
بریښنا لیک
د '. فوکس' یو فنکشن دی ، دا باید وي:
بریښنا لیک
په زړه پوری
د منی په څیر کار کوي .. په جاواسکریپټ کې د ریګ د څرګندونو عالي کارول ...
دا په منی کې دروند…
پته "mmm @ mmm..com" به ومنل شي. مګر دوه ټکي په ګډه معتبر ندي.
فیلسو ، کارول. دا د JS تایید ته اړتیا نلري.
مګر یوازې د عصري براوزرانو سره کار کوي. بدبختانه ، نړۍ لاهم نه ده جوړه شوې. -
د آیفون لپاره د میل باکس څخه لیږل شوی