نمایش نتایج 1 تا 9 از 9

نام تاپیک: ایمیل های معتبر + عبارتهای باقاعده +Regex.IsMatch

  1. #1
    کاربر دائمی آواتار mhsmity
    تاریخ عضویت
    مهر 1387
    محل زندگی
    استان يزد
    سن
    36
    پست
    671

    ایمیل های معتبر + عبارتهای باقاعده +Regex.IsMatch

    با سلام بنده از عبارت باقاعده زیر برای بدست آوردن ایمیل های معتبر استفاده می کنم.
    Regex.IsMatch(strIn,
    @"^(?("")(""[^""]+?""@)|(([a-z]((\.(?!\.))|[-!#\$%&'\*\+/=\?\^`\{\}\|~\w])*)(?<=[0-9a-z])@))" +
    @"(?(\[)(\[(\d{1,3}\.){3}\d{1,3}\])|(([0-9a-z][-\w]*[0-9a-z]*\.)+[a-z0-9]{2,17}))$",
    RegexOptions.IgnoreCase);

    ولی خروجی های زیر رو دارم که اشتباه !!!! هستش:

    اگر امکان داره بنده رو راهنمایی کنید؟
    آیا روش بهتری هم هست؟

    ممنون

  2. #2

    نقل قول: ایمیل های معتبر + عبارتهای باقاعده +Regex.IsMatch


    الگوی ایمیل



    نمونه ای از متن strIn را قرار بدید.

  3. #3

    نقل قول: ایمیل های معتبر + عبارتهای باقاعده +Regex.IsMatch

    منبع:http://msdn.microsoft.com/en-us/library/01escwtf.aspx

    using System;
    using System.Globalization;
    using System.Text.RegularExpressions;

    public class RegexUtilities
    {
    bool invalid = false;

    public bool IsValidEmail(string strIn)
    {
    invalid = false;
    if (String.IsNullOrEmpty(strIn))
    return false;

    // Use IdnMapping class to convert Unicode domain names.
    try {
    strIn = Regex.Replace(strIn, @"(@)(.+)$", this.DomainMapper,
    RegexOptions.None, TimeSpan.FromMilliseconds(200));
    }
    catch (RegexMatchTimeoutException) {
    return false;
    }

    if (invalid)
    return false;

    // Return true if strIn is in valid e-mail format.
    try {
    return Regex.IsMatch(strIn,
    @"^(?("")(""[^""]+?""@)|(([0-9a-z]((\.(?!\.))|[-!#\$%&'\*\+/=\?\^`\{\}\|~\w])*)(?<=[0-9a-z])@))" +
    @"(?(\[)(\[(\d{1,3}\.){3}\d{1,3}\])|(([0-9a-z][-\w]*[0-9a-z]*\.)+[a-z0-9]{2,17}))$",
    RegexOptions.IgnoreCase, TimeSpan.FromMilliseconds(250));
    }
    catch (RegexMatchTimeoutException) {
    return false;
    }
    }

    private string DomainMapper(Match match)
    {
    // IdnMapping class with default property values.
    IdnMapping idn = new IdnMapping();

    string domainName = match.Groups[2].Value;
    try {
    domainName = idn.GetAscii(domainName);
    }
    catch (ArgumentException) {
    invalid = true;
    }
    return match.Groups[1].Value + domainName;
    }
    }



    public class Application
    {
    public static void Main()
    {
    RegexUtilities util = new RegexUtilities();
    string[] emailAddresses = { "david.jones@proseware.com", "d.j@server1.proseware.com",
    "jones@ms1.proseware.com", "j.@server1.proseware.com",
    "j@proseware.com9", "js#internal@proseware.com",
    "j_9@[129.126.118.1]", "j..s@proseware.com",
    "js*@proseware.com", "js@proseware..com",
    "js@proseware.com9", "js@proseware.com9", "j.s@server1.proseware.com" };

    foreach (var emailAddress in emailAddresses) {
    if (util.IsValidEmail(emailAddress))
    Console.WriteLine("Valid: {0}", emailAddress);
    else
    Console.WriteLine("Invalid: {0}", emailAddress);
    }
    }
    }
    // The example displays the following output:
    // Valid: david.jones@proseware.com
    // Valid: d.j@server1.proseware.com
    // Valid: jones@ms1.proseware.com
    // Invalid: j.@server1.proseware.com
    // Invalid: j@proseware.com9
    // Valid: js#internal@proseware.com
    // Valid: j_9@[129.126.118.1]
    // Invalid: j..s@proseware.com
    // Invalid: js*@proseware.com
    // Invalid: js@proseware..com
    // Invalid: js@proseware.com9
    // Valid: j.s@server1.proseware.com

  4. #4
    کاربر دائمی آواتار mhsmity
    تاریخ عضویت
    مهر 1387
    محل زندگی
    استان يزد
    سن
    36
    پست
    671

    نقل قول: ایمیل های معتبر + عبارتهای باقاعده +Regex.IsMatch

    نقل قول نوشته شده توسط Mahmoud.Afrad مشاهده تاپیک

    الگوی ایمیل


    نمونه ای از متن strIn را قرار بدید.
    این الگوها هم همین لیست زیر رو معتبر می دونه

    این هم از متن های ورودی که گفته بوید

    account@ymail.comcreat.softpile.com
    ajerinic@gmail.comdeltaluca.me.uk
    ahmad_sofyan7897@ymail.comwww.flickr.com
    alfestuae@gmail.combuzzon.khaleejtimes.com
    wealth.financialservices0@gmail.comwww.scamwarners .com
    worldbankauditorss201@gmail.comwww.scamwarners.com
    آخرین ویرایش به وسیله mhsmity : چهارشنبه 21 فروردین 1392 در 21:12 عصر

  5. #5
    کاربر دائمی آواتار mhsmity
    تاریخ عضویت
    مهر 1387
    محل زندگی
    استان يزد
    سن
    36
    پست
    671

    نقل قول: ایمیل های معتبر + عبارتهای باقاعده +Regex.IsMatch


  6. #6

    نقل قول: ایمیل های معتبر + عبارتهای باقاعده +Regex.IsMatch

    چرا ایمیل ها و url ها بدون فاصله هستند؟ در اینصورت باید پسوندهایی رو تعیین کنید و طبق اون split کنید.

  7. #7
    کاربر دائمی آواتار mhsmity
    تاریخ عضویت
    مهر 1387
    محل زندگی
    استان يزد
    سن
    36
    پست
    671

    نقل قول: ایمیل های معتبر + عبارتهای باقاعده +Regex.IsMatch

    نقل قول نوشته شده توسط Mahmoud.Afrad مشاهده تاپیک
    چرا ایمیل ها و url ها بدون فاصله هستند؟ در اینصورت باید پسوندهایی رو تعیین کنید و طبق اون split کنید.
    از توجه شما ممنون یعنی هیچ راهی نداره ساده تر دیگه ای نداره ؟

  8. #8

    نقل قول: ایمیل های معتبر + عبارتهای باقاعده +Regex.IsMatch

    نه! اگر دقت کنی متوجه میشی که درسته یک ایمیل به یک url چسبیده ولی باز هم یک ایمیل معتبر تشخیص داده میشه چون در واقعیت هم ممکنه شخصی دارای ایمیلی شبیهaccount@ymail.comcreat.softpile.com باشه. ولی از اونجایی که شما مطمئن هستی این یک ایمیل و یک url هست ، باید جداشون کنید.
    کاری که میتونید انجام بدید اینه که اول طبق همون کد بالا این خطوط رو از متن بکشید بیرون و بعد url ها رو جدا کنید.

  9. #9
    کاربر دائمی آواتار mhsmity
    تاریخ عضویت
    مهر 1387
    محل زندگی
    استان يزد
    سن
    36
    پست
    671

    نقل قول: ایمیل های معتبر + عبارتهای باقاعده +Regex.IsMatch

    نقل قول نوشته شده توسط Mahmoud.Afrad مشاهده تاپیک
    نه! اگر دقت کنی متوجه میشی که درسته یک ایمیل به یک url چسبیده ولی باز هم یک ایمیل معتبر تشخیص داده میشه چون در واقعیت هم ممکنه شخصی دارای ایمیلی شبیهaccount@ymail.comcreat.softpile.com باشه. ولی از اونجایی که شما مطمئن هستی این یک ایمیل و یک url هست ، باید جداشون کنید.
    کاری که میتونید انجام بدید اینه که اول طبق همون کد بالا این خطوط رو از متن بکشید بیرون و بعد url ها رو جدا کنید.
    از کلاس MailMessage msg = new MailMessage استفاده کردم کلا اینجور ایمیل های رو معتبر میشانسه

تاپیک های مشابه

  1. مشکل با ایمیل های سایت
    نوشته شده توسط GentleGuy در بخش گفتگو با مسئولین سایت، درخواست و پیشنهاد
    پاسخ: 0
    آخرین پست: یک شنبه 02 مرداد 1384, 15:17 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •