0

有人可以告诉我客户端正则表达式验证与服务器上进行的正则表达式检查有何不同?

任何对 asp.net 验证控件的引用都将不胜感激。

4

3 回答 3

1

在 asp.net 中,RegularExpressionValidator控件可以执行客户端和服务器端的验证。

否则,JavaScript RegExp对象将用于执行客户端验证,而.NET 正则表达式对象模型将完成服务器端的工作。

通常,如果禁用客户端脚本,客户端验证将不会运行。在这种情况下,需要服务器端验证。不显眼的 JavaScript 应该根据客户端脚本功能对功能进行适当的降级。

于 2012-07-11T17:32:10.503 回答
1

服务器端验证和客户端验证之间的主要区别在于验证器拦截处理的位置。请参阅ASP.NET 页面生命周期概述以了解验证在服务器上发生的位置。要更好地了解验证在客户端上的工作原理,请参阅ASP.NET 服务器控件的客户端验证如何:使用 ASP.NET 服务器控件的自定义函数进行验证

对于 RegularExpressionValidator,它包括在客户端运行的 Javascript 和在服务器上运行的 .NET 代码。如果禁用 Javascript,则客户端验证根本不会运行。根据浏览器的不同,如果某些功能不受支持,ASP.NET 将尝试优雅地降低客户端功能。服务器端验证总是发生。

于 2012-07-11T17:43:02.263 回答
0

差异主要基于所使用的正则表达式引擎的差异。Javascript 有自己的正则表达式引擎,与 .net 的正则表达式引擎相比,它的工作方式有所不同。

两者都基于 Perl 正则表达式引擎,但肯定存在一些差异。

更多信息可以在这里找到。

正则表达式引擎

于 2012-07-11T17:12:41.553 回答