using System.Text.RegularExpressions; string s = @" (?=.*[0-9]) #必须包含数字 (?=.*[a-zA-Z]) #必须包含小写或大写字母 (?=([\x21-\x7e]+)[^a-zA-Z0-9]) #必须包含特殊符号 .{8,30} #至少8个字符,最多30个字符 "; Regex reg = new Regex(s,RegexOptions.Multiline | RegexOptions.IgnorePatternWhitespace); if (!reg.IsMatch(textBox1.Text.Trim())) { MessageBox.Show("密码必须包含8个字符,\r\n并且至少有1个大写字母、\r\n1个小写字母、\r\n1个数字、\r\n1个特殊字符!"); textBox1.Focus(); return; }@H_502_0@ 使用C#中的正则表达式,一个输入格式,两行校验代码,就这么简单的解决了这个问题。既然提到了正则表达式,那就好好的学习一下吧。 @H_502_0@
@H_502_0@在C#中使用引入正则表达式 @H_502_0@
using System.Text.RegularExpressions;之后就是关于正则表达式使用的一些基本语法了。 @H_502_0@
@H_502_0@判断是否匹配 @H_502_0@
@H_502_0@在Regex对象中,可以使用Regex.IsMatch(string)方法。 @H_502_0@如果返回值为false,字符串中未包含要求匹配的内容,默认值为true,则证明字符串中包含,符合条件。 @H_502_0@
@H_502_0@ 关于匹配的问题还会涉及到Matches集合,再利用Matches集合进行获取匹配次数,获取匹配内容,以及捕获正则表达式中的内容。 @H_502_0@Regex.Matches("abc123Count").count; @H_502_0@RegexOptions方法,指的的枚举,其中枚举的有效值有很多,具体的内容推荐一篇博客《C#正则表达式Regex类的用法》在这主要讲解两个,因为这段代码中用到的啊。 @H_502_0@
@H_502_0@1、IgnorePatternWhitespace表示去掉模式中的非转义空白,并启用由#标记的注释,这个注意到我们的代码中是有#标识的注释的。 @H_502_0@2、Multiline表示多行模式,改变元字符^和$的含义,它们可以匹配行的开头和结尾,在C#中^和$是有特殊意义的,所以要考虑全面啊。
@H_502_0@
@H_502_0@ 这是C#中正则表达式非常基础的应用,其实之前在JavaScript中也学习过着这些内容,但是仅仅是学习过而已。大家都知道语言是相通,可是就是没有学过真正的让语言变得灵活起来,还是需要慢慢学习啊。 @H_502_0@
@H_502_0@【总结】 @H_502_0@
@H_502_0@ 关于C#中的学习真是学无止境,自己会的太少了,还是慢慢积累吧,把语言灵活运用起来,这才是目标啊。