برای ایجاد این قابلیت و حتی کنترل داده های دیگر شما میتونید از تکنیک Regular Expression یا عبارات با قائده استفاده کنید در ادامه این تکنیک رو توضیح میدم و سپس مثال عملی رو خدمتتون میگم ، یک سری کارکتر هایی هست که به تنهایی معنی نمیده ولی وقتی در کلاس System.Text.RegularExpressions.Regex.IsMatch قرار میگیرند از اهمیت برخوردار میشوند شاید کمی حفط کردنش سخت باشه ،ضمناً شاید یکی از مشکلترین کارهایی که به خصوص برنامه نویس ها با اون سر و کار دارند، ایجاد Regular Expressions جهت استفاده در برنامه ها هست.
البته اگر دائماً بخواهید با این عبارات کار کنید به مرور این کارکتر ها برای شما معنی پیدا میکنه هر چند شما میتونید همیشه از کدی که در انتها قرار میدم برای ایمیل خودتون در برنامه تون استفاده کنید چون این ها تکه کد هایی هستند که نیازی به تغییر ندارد، در ادامه این کارکتر ها و وظیفه شون رو میگم خدمتتون.
نكته : اگر كاراكتري را خارج از توضيح پيشرفته قرار دهيم آنگاه حتي يك عدد از آن كاراكتر هم اگر در هر جا از رشته اصلي يافت شود مقدار صحيح را بر مي گرداند.
تعاريف زير فقط براي يك كاراكتر شرط مي گذارند اما مي توانيم بعدا بوسيله كاراكترهاي اقدام در تعداد آنها را گسترش دهيم
نكته : به کوچکی یا بزرگی کارکتر ها دقت کنید
داخل براكت كلا بين كاراكترها (يا) برقرار است و اصلا نيازي به عبارات منطقي (يا) و (و) نيست ، قسمت كاراكترهاي كليدي اقدام در تعداد , حال مي توانيم شرايط فوق را براي يك كاراكتر در داخل پرانتز تعريف نماييم و بعد از پرانتز(بعد از پرانتز) از علامتهاي زير استفاده كنيم تا تعداد كاراكترها براي تكرار تعريف شوند , البته در صورتي كه يك شرط فقط داشته باشيم مي توانيم از پرانتز استفاده ننماييم
ضمناً جهت دیدن انواع و اقسام این علامت ها به سایت زیر رفته تا اطلاعات خود را در این ضمینه گسترش دهید
مثال بررسی شماره موبایل
(\+98|0)?9\d{9}
توسط تکه کد زیر شما میتونید مطمئن شوید کاربر شماره موبایلی با فرمت واقیرو برای شما ارسال کرده این شماره میتونه به 98+ شروع شه که اگر با این کارکتر شروع شود دیگر 0 نمیخواهد و حتی میتونه با 0 شروع شه که اگر این چنین باشد دیگر نمیتواند با 98+ شروع شود در ادامه شماره موبایل های کشور عزیزمون ایــــران پس از این کارکتر ها عدد 9 رو به همراه داره که وجودش اجباری هست سپس 9 کارکتر دیگه که میتونه از 0 تا 9 باشه در شماره موبایل باید باشه.
مثال:بررسي يك ايميل
/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{1,3})$/
حداقل يك كاراكتر استاندارد - پرانتزباز فقط يك كاراكتر نقطه يا دش ميتواند باشد يا نباشد كه بعدش حداقل يك كاراكتراستاندارد باشد پرانتزبسته- كل پرانتز قبلي ميتواند براي چند بار تكرار شود يا نشود, كاراكتر ات ساين كه حتما فقط يكي باشد - حداقل يك كاراكتر استاندارد باشد - پرانتزباز فقط يك كاراكتر نقطه يا دش ميتواند باشد يا نباشد كه بعدش حداقل يك كاراكتر استاندارد باشد پرانتز بسته ، پرانتز قبل مي تواند براي چند بار تكرار شود يا نشود - پرانتزباز فقط يك كاراكتر نقطه كه بعدش بين يك تا سه كاراكتر استاندارد باشد - پرانتزبسته
بنابراين مثال های زیر طبق کد بالا میتواند صحیح یا غلط باشد
ابتدا یک Text Box با نام TextEmail در فرم ایجاد کنید سپس میتوانید در رویداد کلیک button تکه کد زیر رو قرار بدید
private void button1_Click(object sender, EventArgs e) { if (string.IsNullOrEmpty(TextEmail.Text)) { MessageBox.Show("یک ایمیل معتبر وارد کنید","Error"); } if (System.Text.RegularExpressions.Regex.IsMatch(TextEmail.Text, @"^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$")) { chkEmail.Text = " ايميل معتبر است"; // ResultEmail.Text = "ايميل معتبر است"; } else { chkEmail.Text = " ايميل معتبر نيست"; // ResultEmail.Text = "ايميل معتبر نيست"; } }
کارشناس ارشد شبکه مایکروسافت
فرهاد خانلری ، مدرس شبکه و برنامه نویسی مبتنی بر زیرساخت های مایکروسافت ، سابقه فعالیت در موسسات و مراکز دولتی در قالب پروژه ، مشاوره و تدریس ، برنامه نویسی ++C ، سی شارپ و دات نت ، متخصص و مدرس شبکه های مبتنی بر سیستم عاملهای مایکروسافت و سرویس های مربوطه ، سخت افزار و ...
زمان پاسخ گویی روز های شنبه الی چهارشنبه ساعت 9 الی 18
فقط به موضوعات مربوط به محصولات آموزشی و فروش پاسخ داده می شود