PDA

View Full Version : سوال: اعتبار سنجی فرم



mehrshadms
دوشنبه 30 آبان 1390, 21:04 عصر
می خوام یه تکست باکس داشته باشم که فقط فرمت email رو دریافت کنه و در ضمن از طریق کلاس نوشته و کنترل بشه چی کار کنم ؟

mmd2009
دوشنبه 30 آبان 1390, 21:14 عصر
سلام

با این متد میتونید اینکارو بکنید :


public bool TestEmailRegex(string emailAddress)
{

const string patternStrict = @"^(([^<>()[\]\\.,;:\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,}))$";

var reStrict = new Regex(patternStrict);

return reStrict.IsMatch(emailAddress);
}


موفق باشید

mehrshadms
دوشنبه 30 آبان 1390, 21:26 عصر
کجا بنویسم اینو بد چه طوری تو تکست باکس ازش استفاده کنم ؟

mmd2009
دوشنبه 30 آبان 1390, 21:32 عصر
خب فرض کن یک دکمه گذاشتی میخوای کاری رو انجام بدی و نیاز داری به این مقدار که تو تکست باکس هست که باید قالبش از نوع ایمیل باشه کافیه بهش بگیی :


if (TestEmailRegex(txtMail.text))
{
// ایمیل درسته
}
else
{
// ایمیل درست نیست
}

mehrshadms
دوشنبه 30 آبان 1390, 21:41 عصر
متدی که گفتی رو تو کلاس نوشتم اررور میده به
var reStrict = new Regex(patternStrict); به regex گیر داد.

mmd2009
دوشنبه 30 آبان 1390, 21:45 عصر
اگر فضای نام زیر رو نداشته باشید مطمئنا با error رو به رو میشه در غیر این صورت بعید میدونم خطا بده :


using System.Text.RegularExpressions;

mehrshadms
دوشنبه 30 آبان 1390, 21:53 عصر
if (TestEmailRegex(txtMail.text))
{
// ایمیل درسته
}
else
{
// ایمیل درست نیست
}
زیر testemailregex خط قرمز میکشه.

mmd2009
دوشنبه 30 آبان 1390, 22:00 عصر
لطفا متن خطا رو بذارید

mehrshadms
دوشنبه 30 آبان 1390, 22:05 عصر
Error 1 The name 'TestEmailRegex' does not exist in the current context

mmd2009
دوشنبه 30 آبان 1390, 22:13 عصر
خب این خطا میگه که متدی که نوشتی اصلا وجود نداره تو این context که داخلشی.

خب طبق گفته خودتون
متدی که گفتی رو تو کلاس نوشتم باید ابتدا شی کلاس رو بسازید سپس به متدهاش دسترسی دارید

حالا فرضا کنید یک کلاس داریم به این شکل :


public class Checking
{
public bool TestEmailRegex(string emailAddress)
{

const string patternStrict = @"^(([^<>()[\]\\.,;:\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,}))$";

var reStrict = new Regex(patternStrict);

return reStrict.IsMatch(emailAddress);
}
}


حالا به این صورت متد رو فراخوانی کنید :


var checking = new Checking();

MessageBox.Show(checking.TestEmailRegex(textBox1.T ext).ToString());


امیدوارم دیگه مشکلی نداشته باشید

موفق باشید