小小贡献,须便散点分。

风之影子 2009-07-30 02:55:14
加精
最近在总结一个基于2.0的小类库,总结了十几种小类,又觉的没用。因为用的时候一搜一大堆。

大家说说看看一般的类库都写些什么。

对了,先贴出来一个小的计算判断类(有的是自己写的,有的是网上的,但都是都过使用验证没问题)

using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Security.Cryptography;
using System.Text.RegularExpressions;//正则表达式命名空间

namespace CCLB
{
/// <summary>
/// 计算判断公共类
/// 所括:电话号码判断、电子邮件判断、身份证合法性判断、身份证内部信息提取、
/// 判断文本是否全是数字组合、文本是否纯数字组合、是否纯字母组合、是否是数字(含小数位)
/// 对称加密解密、非对称加密、返回文本中的数字部分(适合double与int)
/// </summary>
public class ComputeClass
{
#region 电话号码判断
/// <summary>
/// 名称:CheckPhoneNumber
/// 方法:判断是否合法的电话号码
/// </summary>
/// <param name="number">所要判断的电话号码或手机号码</param>
/// <returns>true,false</returns>
public static bool CheckPhoneNumber(string number)
{
if (System.Text.RegularExpressions.Regex.IsMatch(number, @"^(?:0(?:10|2[0-57-9]|[3-9]\d{2})[-—]?)\d{7,8}$"))
{
return true;
}
else if (System.Text.RegularExpressions.Regex.IsMatch(number, "^1\\d{10}$"))
{
return true;
}
else
{
return false;
}
}
#endregion

#region 电子邮件判断
/// <summary>
/// 名称:CheckEmail
/// 功能:判断是否正确的电子邮件
/// </summary>
/// <param name="inputEmail">所要判断的电子邮件号</param>
/// <returns>true,false</returns>
public static bool CheckEmail(string inputEmail)
{
string strRegex = @"^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$";
Regex re = new Regex(strRegex);
if (re.IsMatch(inputEmail))
{
return true;
}
else
{
return false;
}
}
#endregion

#region 身份证内信息提取
/// <summary>
/// 名称:CheckPassPortChina
/// 功能:检查中国公民身份证是否正确
/// </summary>
/// <param name="cid">需检查的身份证号码</param>
/// <returns>返回由省市,生日,性别组成的字符串</returns>
private string CheckPassPortChina(string cid)
{
string[] aCity = new string[] { null, null, null, null, null, null, null, null, null, null, null, "北京", "天津", "河北", "山西", "内蒙古", null, null, null, null, null, "辽宁", "吉林", "黑龙江", null, null, null, null, null, null, null, "上海", "江苏", "浙江", "安微", "福建", "江西", "山东", null, null, null, "河南", "湖北", "湖南", "广东", "广西", "海南", null, null, null, "重庆", "四川", "贵州", "云南", "西藏", null, null, null, null, null, null, "陕西", "甘肃", "青海", "宁夏", "新疆", null, null, null, null, null, "台湾", null, null, null, null, null, null, null, null, null, "香港", "澳门", null, null, null, null, null, null, null, null, "国外" };
double iSum = 0;
string info = "";
System.Text.RegularExpressions.Regex rg = new System.Text.RegularExpressions.Regex(@"^\d{17}(\d|x)$");
System.Text.RegularExpressions.Match mc = rg.Match(cid);
if (!mc.Success)
{
return "";
}
cid = cid.ToLower();
cid = cid.Replace("x", "a");
if (aCity[int.Parse(cid.Substring(0, 2))] == null)
{
return "非法地区";
}
try
{
DateTime.Parse(cid.Substring(6, 4) + "-" + cid.Substring(10, 2) + "-" + cid.Substring(12, 2));
}
catch
{
return "非法生日";
}
for (int i = 17; i >= 0; i--)
{
iSum += (System.Math.Pow(2, i) % 11) * int.Parse(cid[17 - i].ToString(), System.Globalization.NumberStyles.HexNumber);
}
if (iSum % 11 != 1)
{
return ("非法证号");
}

return (aCity[int.Parse(cid.Substring(0, 2))] + "," + cid.Substring(6, 4) + "-" + cid.Substring(10, 2) + "-" + cid.Substring(12, 2) + "," + (int.Parse(cid.Substring(16, 1)) % 2 == 1 ? "男" : "女"));
}
#endregion

#region 检查身分证的合法性
/// <summary>
/// 名称:CheckCidInfo
/// 功能:检查中国公民身份证号码
/// </summary>
/// <param name="cid">需检查的身份证号</param>
/// <returns>true,false</returns>
private bool CheckCidInfo(string cid)
{
string[] aCity = new string[] { null, null, null, null, null, null, null, null, null, null, null, "北京", "天津", "河北", "山西", "内蒙古", null, null, null, null, null, "辽宁", "吉林", "黑龙江", null, null, null, null, null, null, null, "上海", "江苏", "浙江", "安微", "福建", "江西", "山东", null, null, null, "河南", "湖北", "湖南", "广东", "广西", "海南", null, null, null, "重庆", "四川", "贵州", "云南", "西藏", null, null, null, null, null, null, "陕西", "甘肃", "青海", "宁夏", "新疆", null, null, null, null, null, "台湾", null, null, null, null, null, null, null, null, null, "香港", "澳门", null, null, null, null, null, null, null, null, "国外" };
double iSum = 0;
string info = "";
System.Text.RegularExpressions.Regex rg = new System.Text.RegularExpressions.Regex(@"^\d{17}(\d|x)$");
System.Text.RegularExpressions.Match mc = rg.Match(cid);
if (!mc.Success)
{
return false; ;
}
cid = cid.ToLower();
cid = cid.Replace("x", "a");
if (aCity[int.Parse(cid.Substring(0, 2))] == null)
{
return false;
}
try
{
DateTime.Parse(cid.Substring(6, 4) + "-" + cid.Substring(10, 2) + "-" + cid.Substring(12, 2));
}
catch
{
return false;
}
for (int i = 17; i >= 0; i--)
{
iSum += (System.Math.Pow(2, i) % 11) * int.Parse(cid[17 - i].ToString(), System.Globalization.NumberStyles.HexNumber);

}
if (iSum % 11 != 1)
return (false);
//return (aCity[int.Parse(cid.Substring(0, 2))] + "," + cid.Substring(6, 4) + "-" + cid.Substring(10, 2) + "-" + cid.Substring(12, 2) + "," + (int.Parse(cid.Substring(16, 1)) % 2 == 1 ? "男" : "女"));
return true;
}
#endregion

#region 判断文本是否全是字母组合
/// <summary>
/// 名称:IsAllChar
/// 判断文本是否全是字母组合
/// </summary>
/// <param name="text">需判断的文本或是字符串</param>
/// <returns>返回true代表全是字母组合</returns>
public static bool IsAllChar(string text)
{
foreach(char tempchar in text.ToCharArray())
{
if (!char.IsLetter(tempchar))
{
return false;
}
}
return true;
}
#endregion

#region 判断文本是否纯数字组合
/// <summary>
/// 名称:IsAllNumber
/// 判断文本是否全数字组成函数1(推荐使用)
/// </summary>
/// <param name="text">需判断的文本或字符串</param>
/// <returns>返回true代表纯数字,否则为非纯数字</returns>
public static bool IsAllNumber(string text)
{
foreach(char tempchar in text.ToCharArray())
{
if (tempchar == '.')
{
return false;
}
}
Regex objNotNumberPattern = new Regex("[^0-9.-]");
Regex objTwoDotPattern = new Regex("[0-9]*[.][0-9]*[.][0-9]*");
Regex objTwoMinusPattern = new Regex("[0-9]*[-][0-9]*[-][0-9]*");
String strValidRealPattern = "^([-]|[.]|[-.]|[0-9])[0-9]*[.]*[0-9]+$";
String strValidIntegerPattern = "^([-]|[0-9])[0-9]*$";
Regex objNumberPattern = new Regex("(" + strValidRealPattern + ")|(" + strValidIntegerPattern + ")");
return !objNotNumberPattern.IsMatch(text) && !objTwoDotPattern.IsMatch(text) && !objTwoMinusPattern.IsMatch(text) && objNumberPattern.IsMatch(text);
}
#endregion

...全文
1765 277 打赏 收藏 转发到动态 举报
写回复
用AI写文章
277 条回复
切换为时间正序
请发表友善的回复…
发表回复
wbd6572789 2010-08-30
  • 打赏
  • 举报
回复
谢谢分享已经收下
Gary_Cloud 2010-08-25
  • 打赏
  • 举报
回复
很有用的东东
海倍娜楽 2010-08-24
  • 打赏
  • 举报
回复
在总结中学习...
thulpf 2010-08-08
  • 打赏
  • 举报
回复
哈哈,我是菜鸟,刚学,不懂。
蝜蝂 2010-08-06
  • 打赏
  • 举报
回复
很强 大
a511900703 2010-08-06
  • 打赏
  • 举报
回复
太悬了,看不懂,咱是新手!!
lalaguan 2010-08-03
  • 打赏
  • 举报
回复
楼主辛苦,接分,哈哈
这东西整理一下的确方便很多,省的到时候到处去找~
wq326431904 2010-07-16
  • 打赏
  • 举报
回复
好东西
xiu951321 2010-07-16
  • 打赏
  • 举报
回复
有几个用得上,谢啦!
haowsq 2010-07-15
  • 打赏
  • 举报
回复
似是正则的应用小例而已
hjl13960 2010-07-14
  • 打赏
  • 举报
回复
太好了,有些需要借鉴
xcyainiff 2010-07-06
  • 打赏
  • 举报
回复
看到“散分”,好多人是回帖不看帖的,不知道这算是CSDN的悲哀,还是CSDNer的悲哀。。。
pop_kiner 2010-07-05
  • 打赏
  • 举报
回复
谢谢,先顶再看
ElfSundae 2010-07-05
  • 打赏
  • 举报
回复
mark一下下。。
houlizhai521 2010-07-04
  • 打赏
  • 举报
回复
看到散分就高兴。。。。
HLG1986 2010-07-01
  • 打赏
  • 举报
回复
不好意思,菜鸟功力太低,对菜鸟来说这是天生啊
leadingzsx 2010-07-01
  • 打赏
  • 举报
回复
MARK
shancheng44 2010-05-25
  • 打赏
  • 举报
回复
标记,备用
sfgicdgv 2010-05-25
  • 打赏
  • 举报
回复
顶顶 需要时候可以借鉴借鉴
shanshanzhu 2010-05-25
  • 打赏
  • 举报
回复
会有用的
加载更多回复(257)

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧