using System;
using System.Text.RegularExpressions;
namespace bobomousecom.crm
{
/// <summary>
/// Regexlib 的摘要说明。
/// </summary>
public class Regexlib
{
public Regexlib()
{
  //
  // TODO: 在此处添加构造函数逻辑
  //
}

//搜索输入字符串并返回所有 href=“...”值
string DumpHrefs(String inputString)
{
  Regex r;
  Match m;
  r = new Regex("href//s*=//s*(?:/"(?<1>[^/"]*)/"|(?<1>//S+))",
  RegexOptions.IgnoreCase|RegexOptions.Compiled);
  for (m = r.Match(inputString); m.Success; m = m.NextMatch())
  {
  return("Found href " + m.Groups[1]);
  }
}

//验证Email地址
bool IsValidEmail(string strIn)
{
  // Return true if strIn is in valid e-mail format.
  return Regex.IsMatch(strIn, @"^([/w-/.]+)@((/[[0-9]{1,3}/.[0-9]{1,3}/.[0-9]{1,3}/.)|(([/w-]+/.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(/]?)$");
}

//dd-mm-yy 的日期形式代替 mm/dd/yy 的日期形式。
string MDYToDMY(String input)
{
  return Regex.Replace(input,"//b(?//d{1,2})/(?//d{1,2})/(?//d{2,4})//b","${day}-${month}-${year}");
}

//验证是否为小数
bool IsValidDecimal(string strIn)
{
 
  return Regex.IsMatch(strIn,@"[0]./d{1,2}|[1]");
}
//验证两位小数

    public bool IsDecimal(string str_decimal)
    {
            return System.Text.RegularExpressions.Regex.IsMatch(str_decimal, @"^[0-9]+(.[0-9]{2})?$");
    }

//验证一年的12个月  ---  一个汉字

    public bool IsMonth(string str_Month)
    {
            return System.Text.RegularExpressions.Regex.IsMatch(str_Month, @"^(0?[[1-9]|1[0-2])$");
    }

 

//验证一个月的31天

    public bool IsDay(string str_day)
    {
            return System.Text.RegularExpressions.Regex.IsMatch(str_day, @"^((0?[1-9])|((1|2)[0-9])|30|31)$");
    }


//验证是否为电话号码
       (1)电话号码由数字、"("、")"和"-"构成  
    (2)电话号码为3到8位  
    (3)如果电话号码中包含有区号,那么区号为三位或四位  
    (4)区号用"("、")"或"-"和其他部分隔开  
    (5)移动电话号码为11或12位,如果为12位,那么第一位为0  
    (6)11位移动电话号码的第一位和第二位为"13"  
    (7)12位移动电话号码的第二位和第三位为"13"  
    根据这几条规则,可以与出以下正则表达式:  

bool IsValidTel(string strIn)
{
  return Regex.IsMatch(strIn,@"(^[0-9]{3,4}/-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^/([0-9]{3,4}/)[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)");
}
           

//验证年月日
bool IsValidDate(string strIn)
{
  return Regex.IsMatch(strIn,@"^2/d{3}-(?:0?[1-9]|1[0-2])-(?:0?[1-9]|[1-2]/d|3[0-1])(?:0?[1-9]|1/d|2[0-3]):(?:0?[1-9]|[1-5]/d):(?:0?[1-9]|[1-5]/d)$");
}

//验证后缀名
bool IsValidPostfix(string strIn)
{
  return Regex.IsMatch(strIn,@"/.(?i:gif|jpg)$");
}

//验证字符是否在4至12之间
bool IsValidByte(string strIn)
{
  return Regex.IsMatch(strIn,@"^[a-z]{4,12}$");
}

//验证IP
bool IsValidIp(string strIn)
{
  return Regex.IsMatch(strIn,@"^(/d{1,2}|1/d/d|2[0-4]/d|25[0-5])/.(/d{1,2}|1/d/d|2[0-4]/d|25[0-5])/.(/d{1,2}|1/d/d|2[0-4]/d|25[0-5])/.(/d{1,2}|1/d/d|2[0-4]/d|25[0-5])$");
}
// 验证输入汉字

   public bool IsChinese(string str_chinese)
   {
            return System.Text.RegularExpressions.Regex.IsMatch(str_chinese, @"^[/u4e00-/u9fa5],{0,}$");
   }

// 验证输入汉字 ---  多个汉字 (区别在于一个“,”)
        public bool IsChinese(string str_chinese)
        {
            return System.Text.RegularExpressions.Regex.IsMatch(str_chinese, @"^[/u4e00-/u9fa5]{0,}$");
        }

 

//验证输入字符串 (至少8个字符)

  public bool IsLength(string str_Length)
  {
            return System.Text.RegularExpressions.Regex.IsMatch(str_Length, @"^.{8,}$");
  }

//验证数字输入

    public bool IsNumber(string str_number)
     {
            return System.Text.RegularExpressions.Regex.IsMatch(str_number, @"^[0-9]*$");
     }

//  验证密码长度 (6-18位)

    public bool IsPasswLength(string str_Length)
    {
            return System.Text.RegularExpressions.Regex.IsMatch(str_Length, @"^/d{6,18}$");
    }


}