微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ASP.NET 4.0更改了控件的呈现方式,以便RegEx解析ASP.NET呈现的HTML不再起作用

如何解决ASP.NET 4.0更改了控件的呈现方式,以便RegEx解析ASP.NET呈现的HTML不再起作用

| 尝试查找href标记以字符串形式保存html中的动态更新它们时,自2.0升级到4.0以来一直运行良好一段时间的RegEx已损坏。 正则表达式:
<a\\\\s+[^>]*(href=\\\"([^#\\\"]+)\\\")[^>]*>(.*)</a>
我们会在这些href中打上井号(#),因为这意味着它们已经更新,但想返回所有其他实例。问题来了,因为现在我们的javascript函数
&#039;
而不是单引号输出,这意味着它们由于hash(#)而与测试不符。 .Net是否已从2.0更改为4.0? 更新 这就是.Net 4.0吐出来的内容,并且如上所述已将单引号自动更改为
&#039;
<a class=\"ctl00_Menu_1 Menu_DynamicmenuItemStyle ctl00_Menu_6\" href=\"javascript:__doPostBack(&#39;ctl00$Menu&#39;,&#39;Menu Parent\\\\Menu Child&#39;)\" style=\"border-style:none;font-size:1em;\">Menu Child</a>
以前,它输出以下内容
<a class=\"ctl00_Menu_1 Menu_DynamicmenuItemStyle ctl00_Menu_6\" href=\"javascript:__doPostBack(\'ctl00$Menu\',\'Menu Parent\\\\Menu Child\')\" style=\"border-style:none;font-size:1em;\">Menu Child</a>
我们的正则表达式已正确捕获了该错误,但我们必须更新以下内容
@\"<a\\s+[^>]*(href=\\\"\"([^#\\\"\"][^\\\"\"]+)\\\"\")[^>]*>(.*)</a>\"
现在,这说明了新出现的哈希值,而没有筛选出已编码的哈希值。我已经解决了这个问题,并且知道有一个更改,尽管我并不是100%进行更改的地方。感谢您的关注。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。