我已经创建了一个HTTPModule,每次对我的网站的请求都会调用它。在模块内部,我为HTTPApplication.Context.Response.Filter创建了自己的过滤器包装器,允许我在将标记发送回客户端之前对其进行操作。
这里的想法是,我将搜索某些单词/短语,并将它们替换为将存储在数据库中的给定语言中的相同单词/短语。
我想要替换的单词之一是"Password“。问题是在标记中有名为_ctl122_txtPassword的控件,当我在我的过滤器中时,我实际上只是在做字符串操作(搜索/替换/等等)。因此,控件名称被重命名为_ctl122_txtTranslation,这破坏了所有的东西。
所以我不想替换其中的匹配项:<input type="password" style="width: 200px;" class="formfield" id="_ctl22_txtPassword" name="_ctl22:txtPassword">
但是我确实想替换其中的匹配项:<td align="right" class="formlabel">Password:</td>
我已经尝试了一些RegEx解决方案,但我不是RegEx忍者,所以这可能是可行的方法,但我就是不够了解它们。
我尝试过的另一种方法实际上是替换字符串“>Password”。
提前感谢你的帮助。
发布于 2011-01-31 11:23:43
由于HTML的性质,编写一个可以处理所有情况的正则表达式有点困难。
您可以将此作为起点
http://snook.ca/archives/active_server_pages/vbscript_code_t
更好的解决方案可能是使用HTML解析工具(Html Agility Pack)
http://social.msdn.microsoft.com/Forums/en/regexp/thread/3b0a595b-cd09-446f-bbcb-d826511c364e
如果我要这样做(听起来像是一个多语言站点),我可能会使用资源文件
或者可能定义了宏边界,以便我的正则表达式可以轻松地查找内容。
例如@@的
<td align="right" class="formlabel">@@Password@@:</td>https://stackoverflow.com/questions/4847223
复制相似问题