.Net RegularExpressionValidator与Regex类的匹配方式不同

The*_*eek 4 .net c# regex asp.net

当我使用.Net RegularExpressionsValidator控件时,Validation表达式匹配EXACT文本.当我这样说时,我的意思是,对于我给它验证的字符串,如果它偏离正则表达式模式,则所有字符串都不会验证.

例如:(([0-1] [0-9])|([2] [0-3])):( [0-5] [0-9])如果在RegularExpressionsValidator控件中给出,则只匹配字符串喜欢 - > 12:00,07:15,23:59但不匹配字符串12:00foo,bar23:00,foobar.

现在,当我在后面的代码中使用Regex类并给它相同的正则表达式时,它匹配包含匹配和任何其他字符的所有字符串.

例如:(使用与上一个例子相同的正则表达式)如果我使用Regex类,则以下字符串将匹配 - > 12:00,07:15,23:59和12:00foo(包含匹配),bar23:00 (包含一个匹配).

有没有理由对它们进行不同的处理,是否有办法模仿与RegularExpressionValidator控件相同的行为?

提前致谢!

Gav*_*ler 7

发生的事情是正则表达式验证器将您的字符串作为一行文本处理.它隐含地在正则表达式的开头放入^和$ matchers.

这就像说:

^(([0-1][0-9])|([2][0-3])):([0-5][0-9])$
Run Code Online (Sandbox Code Playgroud)

上面的表达式Regex Class将产生与验证器控件相同的结果.