有人能告诉我客户端正则表达式验证与服务器上的正则表达式检查有什么不同吗?
任何对asp.net验证控制的引用都应得到认可。
发布于 2012-07-12 01:32:11
在asp.net中,RegularExpressionValidator控件既可以执行客户端验证,也可以执行服务器端验证。
否则,将使用JavaScript RegExp对象来执行客户端验证,而.NET Regular Expression Object Model将执行服务器端的工作。
通常,如果禁用客户端脚本,客户端验证将不会运行。在这种情况下,需要服务器端验证。根据客户端脚本功能,Unobtrusive JavaScript应该允许功能正常降级。
发布于 2012-07-12 01:43:02
服务器端验证和客户端验证之间的主要区别在于验证器截获处理的位置。请参阅ASP.NET Page Life Cycle Overview以了解验证在服务器上发生的位置。要更好地理解客户端上的验证是如何工作的,请参阅Client-Side Validation for ASP.NET Server Controls和How to: Validate with a Custom Function for ASP.NET Server Controls。
在RegularExpressionValidator的情况下,它既包括在客户端运行的Javascript,也包括在服务器上运行的.NET代码。如果禁用了Javascript,则客户端验证根本不会运行。根据浏览器的不同,如果某些功能不受支持,ASP.NET将尝试适当地降低客户端功能。服务器端验证总是会发生。
发布于 2012-07-12 01:12:42
这些差异主要基于所使用的Regex引擎的不同。Javascript有自己的正则表达式引擎,与.Net的正则表达式引擎相比,它的工作方式有所不同。
两者都基于Perl regex引擎,但肯定有一些不同。
更多信息可以在这里找到。
Regex engine
https://stackoverflow.com/questions/11437801
复制相似问题