常用正则表达式

常用正则表达式

+ 至少一次,?至多一次,* 0次或多次

虽然网站项目一般都是用JS做验证,何必还要在服务器端做验证呢?

因为客户端验证是很容易被跳过的,服务器的第二次验证可以保证我们的数据极大的完整性和可靠性。

//密码格式:数字+字母,长度超过8位。。【忽略大小写】
public static bool MatchPwd(string strPwd)
    {
        string patternPwd = @"^[\da-zA-Z]{8,}$";
        return Regex.IsMatch(strPwd, patternPwd, RegexOptions.IgnoreCase);
    }

//手机号码:手机号验证的正则表达式
    public static bool MatchPhone(string strPhone)
    {
        string patternPhone = "^((13[0-9])|(15[^4])|(18[0-9])|(17[0-8])|(147,145))\\d{8}$";
        return Regex.IsMatch(strPhone, patternPhone, RegexOptions.IgnoreCase);
    }

//电话号码正则表达式(包含电话号码和手机号码)
'/^([1]\d{10}|([\((]?0[0-9]{2,3}[)\)]?[-]?)?([2-9][0-9]{6,7})+(\-[0-9]{1,4})?)$/'

//电子邮箱:
    public static bool MatchEmail(string strEmail)
    {
        string patternEmail = @"^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,5})+$";
        return Regex.IsMatch(strEmail, patternEmail, RegexOptions.IgnoreCase);
    }
//身份证格式:
    public static bool MatchCardID(string strCardID)
    {
        string patternCardID = @"(^\d{15}$)|(^\d{17}(\d|X)$)";
        return Regex.IsMatch(strCardID, patternCardID, RegexOptions.IgnoreCase);
    }

//windows文件名非法字符过滤检测:

windows现在已知的文件名非法字符有 \ / : * ? " < > |

var reg = new RegExp('[\\\\/:*?\"<>|]');

网址  http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?

解释:

(s)? 一次或0次s

\w表示匹配单个字符,数字,还有下划线..

\.就表示字符"."

[]表示一个集合,与集合中包含的任何一个字符匹配

比如[\w-]表示可以为"\w"或者为"-",也就是a-z,A-Z,0-9,再加一个连接符"-"

"[\w-]+"中的"+"表示至少出现一次,即[\w-]中所包含的字符出现一个或者多个,举个例子,可以匹配"a","ab","ab-","a-b"...

"[\w-]+\."表示后面再加一个".",举个例子"a.","ab.","ab-.","a-b."等等..

"([\w-]+\.)+"上面这个组合出现一次或者多次,比如:"a.","a.ab.","ab.ab-.","a-b.a-b."等等

必须有数字和字母组合的密码正则表达式

要求:由数字和字母组成,并且要同时含有数字和字母,且长度要在8-16位之间。

^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,16}$

分开来注释一下:
^ 匹配一行的开头位置
(?![0-9]+$) 预测该位置后面不全是数字
(?![a-zA-Z]+$) 预测该位置后面不全是字母
[0-9A-Za-z] {8,16} 由8-16位数字或这字母组成
$ 匹配行结尾位置

注:(?!xxxx) 是正则表达式的负向零宽断言一种形式,标识预该位置后不是xxxx字符。

参考

最全常用正则表达式大全

 

posted @ 2015-09-01 11:59  peterYong  阅读(186)  评论(0编辑  收藏  举报