我正在一个经典的 asp 应用程序中工作,该应用程序需要修改用户复制并粘贴到表单中的代码的功能。该用户被认为是不熟悉 html 的可信用户。
我正在尝试这样做,以便如果用户想要更改width=""
提供的代码中的所有属性,那么他所要做的就是用正确的值填充文本框标签宽度,然后按保存/提交。然后脚本将查找所有宽度属性并在提供的 html 片段中更新它们的值。
我一直在研究一个正则表达式来做到这一点,但是在研究时我读到很多人不推荐这种类型的事情的正则表达式,而是宁愿使用某种 html 解析器对象。
经典 asp 中是否有可用的 html 解析器或 DOM 浏览器/编辑器,还是我只需要继续我的正则表达式开发?
对于正则表达式,这是我迄今为止所拥有的......仍然需要对其进行修改以对所有匹配项执行替换,而不仅仅是第一个匹配项:
function replaceBetween(sSource, sStart, sStop, sValue)
thisNewValue = sStart & sValue & sStop
set re = new regexp
re.pattern = "(" & "" &sStart & ")(.*?)(" & sStop & ")"
re.IgnoreCase = true
response.write "Pattern: <b>" & re.pattern & "</b><br />" & vbnewline
response.write "thisNewValue: <b>" & thisNewValue & "</b><br />" & vbnewline
response.write "match: <b>" & re.test(sSource) & "</b><br />" & vbnewline
replaceBetween = re.replace(sSource, thisNewValue)
end function
sourceText = ("<div class='thisclass' id=""thisID""><a anotherthing="""" attribute=""one""><a attribute=""2""><a anotherattribute="" attribute=""three 3""></div>")
replacestart = "attribute="""
replacestop = """"
newvalue = "XXXX"
response.write "updated source: <b>" & server.HTMLEncode(replaceBetween(sourceText,replacestart,replacestop,newvalue)) & "</b><br />" & vbnewline