第一次作业时,判断数字那个方法就想到用正则了,可在MSDN里一看,Match只是在指定字符串里查找匹配表达式的部分,而我要的功能确是让字符串符合表达式,当时,感觉时间紧张,就此作罢~~
今天看到 检查用户名,密码,我又想起了正则。记忆中正则有这样的功能的啊,为何我就没找到相关方法呢?于是,今天又花时间看起了MSDN。功夫不负有心人,看到了^与$的功能,一头一尾,不就可以当完全匹配来用吗?于是,写了如下方法:
public static bool CheckPassword(string password)
{
return Regex.IsMatch(password, "^[0-9a-zA-Z]{6,16}$");
}
public static bool CheckName(string name)
{
return Regex.IsMatch(name, "^[a-zA-Z]{1,20}$");
} 再想下那个CheckNumber,不也能很快解决吗?
有兴趣的可以试着写一下~~
8.9追加
昨天写文时,有点晚了,所以COPY了已有的代码,就完结了,并没写出CheckNumber,回家时,仔细考虑了下,感觉也得花点时间才写的出来~~
今天看了cypha的文,地址如下:
http://www.blogjava.net/challenxing/archive/2006/08/09/62497.html看他的表达式那么短,于是测试了下,有些方面没考虑到~~
如:开头多个0,结尾小数点等。
于是改进了下,附带一提,vs2005下需要两个“\”才不报错~~
(一篇文里不能用两次代码吗?点了居然没反应-_-|||)
public bool CheckNumber(String number)
{
return Regex.IsMatch(number, "^[-|+]?([1-9][0-9]*\\.?[0-9]+|0\\.[0-9]+)|[0-9]$");
}
最后加了[0-9]是因为,前面一部分将一位数给忽略了~~
如有更简洁更好的表达式,望赐教~