Я работаю в классическом приложении asp, которое требует функциональности, которая будет изменять код, который пользователь копирует и вставляет в форму. Пользователь считается доверенным пользователем, который не знаком с html.
Я пытаюсь сделать так, чтобы, если пользователь хочет изменить все атрибуты width=""
в предоставленном коде, все, что ему нужно сделать, это заполнить текстовое поле Width с правильным значением и нажать «Сохранить / отправить». Затем скрипт найдет все атрибуты ширины и обновит их значения в предоставленном фрагменте HTML.
Я работал над регулярным выражением, чтобы сделать это, но во время исследования я прочитал, что многие люди не рекомендуют регулярные выражения для такого типа вещей, и предпочли бы использовать какой-либо объект парсера html.
Существует ли html-парсер или DOM-браузер / редактор, доступный в классическом asp, или мне просто нужно продолжить разработку регулярных выражений?
Для регулярного выражения это то, что у меня есть до сих пор ... все еще нужно изменить его, чтобы выполнять замены во всех матчах, а не только в первом:
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