45fan.com - 路饭网

搜索: 您的位置主页 > 网络频道 > 阅读资讯:常用函数集介绍

常用函数集介绍

2016-09-04 18:40:02 来源:www.45fan.com 【

常用函数集介绍

/// <summary>

/// 检验日期格式是否正确

/// </summary>

#region public string IsDateFormat(string strDate)

public string IsDateFormat(string strDate)

{

strDate = strDate.Trim();

Regex r1 = new Regex(@"^(?<year>[1-9][0-9]{0,3})/(?<month>[0-9]{1,2})/(?<day>[0-9]{1,2})$");

Regex r2 = new Regex(@"^(?<year>[1-9][0-9]{0,3})-(?<month>[0-9]{1,2})-(?<day>[0-9]{1,2})$");

Regex r3 = new Regex(@"^(?<year>[1-9][0-9]{0,3})年(?<month>[0-9]{1,2})月(?<day>[0-9]{1,2})日$");

Regex r4 = new Regex(@"^(?<month>[0-9]{1,2})/(?<day>[0-9]{1,2})/(?<year>[1-9][0-9]{0,3})$");

// 取得日期的年,月,日

string year, month, date;

if(Regex.IsMatch(strDate,@"^(?<month>[0-9]{1,2})/(?<day>[0-9]{1,2})/(?<year>[1-9][0-9]{3})$"))

{

year = r4.Match(strDate).Result("${year}");

month = r4.Match(strDate).Result("${month}");

date = r4.Match(strDate).Result("${day}");

}

else if (Regex.IsMatch(strDate,@"^(?<year>[1-9][0-9]{0,3})/(?<month>[0-9]{1,2})/(?<day>[0-9]{1,2})$"))

{

year = r1.Match(strDate).Result("${year}");

month = r1.Match(strDate).Result("${month}");

date = r1.Match(strDate).Result("${day}");

}

else if(Regex.IsMatch(strDate,@"^(?<year>[1-9][0-9]{0,3})-(?<month>[0-9]{1,2})-(?<day>[0-9]{1,2})$"))

{

year = r2.Match(strDate).Result("${year}");

month = r2.Match(strDate).Result("${month}");

date = r2.Match(strDate).Result("${day}");

}

else if(Regex.IsMatch(strDate,@"^(?<year>[1-9][0-9]{0,3})年(?<month>[0-9]{1,2})月(?<day>[0-9]{1,2})日$"))

{

year = r3.Match(strDate).Result("${year}");

month = r3.Match(strDate).Result("${month}");

date = r3.Match(strDate).Result("${day}");

}

else

{

return "error";

}

// 最后检查日期的正确性

try

{

System.DateTime dt = new DateTime(Convert.ToInt32(year), Convert.ToInt32(month), Convert.ToInt32(date));

return dt.ToString("yyyy-MM-dd");

}

catch

{

return "error";

}

}

#endregion

------------------------------------------------------------------------------------------

/// <summary>

/// 检验Email字符串格式是否正确

/// </summary>

#region public bool IsEmailFormat(string strEmail)

public bool IsEmailFormat(string strEmail)

{

return Regex.IsMatch(strEmail, @"^([/w-/.]+)@((/[[0-9]{1,3}/.[0-9]{1,3}/.[0-9]{1,3}/.)|(([/w-]+/.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(/]?)$");

}

#endregion

------------------------------------------------------------------------------------------

/// <summary>

/// 转换十五位身份证为十八位的函数。

/// </summary>

#region public string ConvertIDCard15to18(string strTemp)

public string ConvertIDCard15to18(string strTemp)

{

int[] arrInt = new int[]{7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2};

string arrCh="10X98765432";

int nTemp = 0;

if(strTemp.Length==15)

{

strTemp = strTemp.Substring(0,6) + "19" + strTemp.Substring(6,strTemp.Length-6);

for(int i = 0; i < strTemp.Length; i++)

{

nTemp += int.Parse(strTemp.Substring(i, 1).ToString()) * arrInt[i];

}

strTemp += arrCh[nTemp % 11];

}

char dd=arrCh[nTemp % 11];

return strTemp;

}

#endregion

------------------------------------------------------------------------------------------

下在为判断ASCII码的函数组,仅支持中英文

/// <summary>

/// 是否为双字节字符。

/// </summary>

public static bool IsTwoBytesChar(char chr)

{

string str =chr.ToString();

// 使用中文支持编码

Encoding ecode = Encoding.GetEncoding("GB18030");

if (ecode.GetByteCount(str) == 2)

{

return true;

}

else

{

return false;

}

}

/// <summary>

/// 得到字符的ASCII码

/// </summary>

public static int ASCII(char chr)

{

Encoding ecode = Encoding.GetEncoding("GB18030");

Byte[] codeBytes = ecode.GetBytes(chr.ToString());

if ( IsTwoBytesChar(chr) )

{

// 双字节码为高位乘256,再加低位

// 该为无符号码,再减65536

return (int)codeBytes[0] * 256 + (int)codeBytes[1] - 65536;

}

else

{

return (int)codeBytes[0];

}

}

 

本文地址:http://www.45fan.com/a/question/72388.html
Tags: 检验 summary 数集
编辑:路饭网
关于我们 | 联系我们 | 友情链接 | 网站地图 | Sitemap | App | 返回顶部