Так что с Lua я использую его для замены вывода HTML на странице ответа с сервера Nginx. Чтобы сделать значение = "*" HTML-тег пустым.Lua Nginx заменяет вывод HTML
Проблема в том, что я продолжаю терять конец своего HTML после того, как Lua заменяет строку и делает то, что когда-либо между котировками, оставил остальную часть моего HTML на той же строке после того, как она исчезла.
Lua Код:
body_filter_by_lua_block {
local body = ngx.arg[1] --Put body into local var
local htmlvaluetomakeempty = "id=\"username\" value="
local loginpagematch = ngx.re.match(body, "" .. htmlvaluetomakeempty .. "\"(?:.*)\"") --Search through body to see if our html match is found
if loginpagematch then --If not empty
body = ngx.re.gsub(body, "" .. htmlvaluetomakeempty .. "\"(?:.*)\"", "" .. htmlvaluetomakeempty .. "\"\"") --.. loginpagematch["match"])
ngx.arg[1] = body
end
}
HTML код, который Lua будет заменить:
<div class="login-fields"><label id="username-lbl" for="username" class="">User Name</label> <input type="text" name="username" id="username" value="test" class="validate-username" size="25"/></div>
После Lua побежал и изменять содержимое тела вывод выглядит следующим образом
<div class="login-fields"><label id="username-lbl" for="username" class="">User Name</label> <input type="text" name="username" id="username" value=""/></div>
Проблема заключается в следующем HTML-код также был удален по неизвестной причине
class="validate-username" size="25"
Он успешно делает id="username" value=""
пустым, но я теряюсь, что пришел когда-либо HTML после этого тоже, и я не знаю, почему.
Возможно нежадным матч требуется GSUB: ' "\"(?.? *) \ "" –
Спасибо да, вы правы, просто изменили мое регулярное выражение, чтобы оно соответствовало, и проблема решена: D <3 – C0nw0nk