I can have two types of string: nxs_flo_dev.nexus
orfpdesk
.
I want to test if there is a .
in the string.
If there is a .
I divide the string otherwise I do not do anything.
if(ngx.var.host.contains('.') then content_by_lua 'ngx.say(ngx.var.host:match("(.-)%."))'; end
Is there a function to do that? Because .contains()
doesn’t work.
Advertisement
Answer
Use match
again. Remember to escape the dot with %.
:
if ngx.var.host:match('%.') then
If you want to do this inside content_by_lua
do
content_by_lua 'if ngx.var.host:match('%.') then ngx.say(ngx.var.host:match("(.-)%.")) end';
Given your edit, this is the simplest solution:
content_by_lua 'ngx.say(ngx.var.host:match("(.-)%.") or ngx.var.host)';