读书人

小小贡献须便散点分。解决方案

发布时间: 2011-12-30 23:30:45 作者: rapoo

小小贡献,须便散点分。
最近在总结一个基于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



[解决办法]
学习
[解决办法]
顶顶 需要时候可以借鉴借鉴
[解决办法]
向楼主学习 ,顶
[解决办法]
天下代码一把抄啊。
[解决办法]
这个不错
[解决办法]
楼主不错,接分!
[解决办法]
UP
------解决方案--------------------


类库一般属于平台开发,写大家都可能调用的公共类的一些方法,楼主的这些都属于针对某个问题的解决方式,个人不属于类库的开发。
[解决办法]
不错,顶一个~~~
[解决办法]
jf
[解决办法]
好贴,顶个
[解决办法]
支持
[解决办法]
我觉得对我很有用,谢谢了
[解决办法]
接分
[解决办法]
xiaoJ

[解决办法]
mark
[解决办法]
太厉害了!!!!!佩服 !!!!
[解决办法]
我顶
[解决办法]
哈···

[解决办法]
公共类库吗当然是封装一些通用方法了
[解决办法]
mark
[解决办法]
Thanks,mark
[解决办法]
不错
[解决办法]
学习
[解决办法]
学习 接分
[解决办法]
学习,接分
[解决办法]
好同志
[解决办法]
先谢了!?收藏学习!?
[解决办法]
学习 JF
[解决办法]
这是什么?
[解决办法]
UP一下, 好东西。
[解决办法]
能分享,不错
[解决办法]
jf
[解决办法]
网上代码太多了
[解决办法]
正则真强大
[解决办法]
收集整理也是一种创新,前几天看有位TX把winform下的开发文章全部整理了一番,发到CSDN上来了,很好,方便了很多人~~
[解决办法]

你们知道吗,CSDN回复里本身就带有表情的
[解决办法]
收!
[解决办法]
j
[解决办法]
正则很好,总结的不错啊,学习,呵呵
[解决办法]

探讨
你们知道吗,CSDN回复里本身就带有表情的

------解决方案--------------------


(有的是自己写的,有的是网上的,但都是都过使用验证没问题)
我喜欢这句实话, 代码多的很, 又有几位贴出来前自己验证过?
[解决办法]
这些判断放在客户端比较好
[解决办法]
学习了
[解决办法]
先MARk了
[解决办法]
一般写个类库就一直用了 现在很少自己写了 无非就是在原来的上面添加一些新的功能罢了 不过还是谢谢楼主 楼主辛苦了
[解决办法]
UP
[解决办法]

JF
[解决办法]
顶下~~
[解决办法]
JF
[解决办法]
jf
[解决办法]

[解决办法]
支持楼主!!!此类工作永不嫌多!
[解决办法]

[解决办法]
强悍
[解决办法]
楼主辛苦咯。
[解决办法]


弱弱的说一句,


我是来JF的


[解决办法]
楼主辛苦了,接分~~
[解决办法]
fsdsdgsdfsdfsd
[解决办法]
弱弱的说一句,


我是来JF的

[解决办法]
沙发
[解决办法]
先顶再看/laugh
[解决办法]
很好,谢谢分享!
[解决办法]
开源很好 LZ 很棒
[解决办法]
js
[解决办法]
接分

[解决办法]

[解决办法]
hao~~~~
[解决办法]
谢谢分享
[解决办法]
很好,谢谢分享!
[解决办法]
谢谢啦!!
[解决办法]
不管是自己的还是别人的,能整理并积累起来的,就是自己的
[解决办法]
好贴布能沉了。
顶哦
[解决办法]
好贴。
[解决办法]
楼主的本意是好的,但是我只能说“正则真的不是这样用的”

随便拿出来一个吧,比如验证是否全是汉字,一条语句搞定的,为什么还要先遍历取char,再c.ToString(),再用验证字符串的方式验证一个字符@"^[\u4e00-\u9fa5]+$",然后再在if语句中用 == false这种方式判断,或许这是我所见过最失败的一个正则应用了。。。



C# code
public bool IsAllChinese(string text){    return Regex.IsMatch(text, @"^[\u4e00-\u9fa5]+$");}
[解决办法]
留个脚印 以后用的时候来看看
[解决办法]
放心,微软会把我们想到的公用类库都会实现的。
[解决办法]
呵呵,不错,谢谢分享
[解决办法]
Mark
[解决办法]
不错。学习下
[解决办法]
顶下。。。。。
[解决办法]
顶一下!!!!!!!
[解决办法]
Good!
[解决办法]
向楼主学习
[解决办法]
收藏一下,在需要的时候可以用一下
[解决办法]
jf
[解决办法]
顶,谢谢分享
[解决办法]
总结的不错
[解决办法]
顶。很不错。
[解决办法]
copy 下来先
[解决办法]
我是路过的
[解决办法]
学习,类库需要好好规划。
[解决办法]
bucuo
[解决办法]
看到“散分”,好多人是回帖不看帖的,不知道这算是CSDN的悲哀,还是CSDNer的悲哀。。。
[解决办法]
mark

读书人网 >C#

热点推荐