1
因此,我使用它來替換來自Nginx服務器響應頁面的HTML輸出。爲了使value =「*」HTML標籤爲空。Lua Nginx替換HTML輸出
問題是我在Lua替換字符串之後不斷丟掉我的HTML的末尾,並且在引號之後,在同一行中刪除了剩餘的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