fix(api): escape the searching string

This commit is contained in:
JianBo He 2021-10-22 09:35:36 +08:00 committed by x1001100011
parent 4eb966549e
commit 2ded7fbe8c
2 changed files with 12 additions and 6 deletions

View File

@ -258,7 +258,7 @@ ms(lifetime, X) ->
fuzzy_filter_fun(Fuzzy) -> fuzzy_filter_fun(Fuzzy) ->
REFuzzy = lists:map(fun({K, like, S}) -> REFuzzy = lists:map(fun({K, like, S}) ->
{ok, RE} = re:compile(S), {ok, RE} = re:compile(escape(S)),
{K, like, RE} {K, like, RE}
end, Fuzzy), end, Fuzzy),
fun(MsRaws) when is_list(MsRaws) -> fun(MsRaws) when is_list(MsRaws) ->
@ -266,6 +266,9 @@ fuzzy_filter_fun(Fuzzy) ->
, MsRaws) , MsRaws)
end. end.
escape(B) when is_binary(B) ->
re:replace(B, <<"\\\\">>, <<"\\\\\\\\">>, [{return, binary}, global]).
run_fuzzy_filter(_, []) -> run_fuzzy_filter(_, []) ->
true; true;
run_fuzzy_filter(E = {_, #{clientinfo := ClientInfo}, _}, [{Key, _, RE} | Fuzzy]) -> run_fuzzy_filter(E = {_, #{clientinfo := ClientInfo}, _}, [{Key, _, RE} | Fuzzy]) ->

View File

@ -620,7 +620,7 @@ ms(created_at, X) ->
fuzzy_filter_fun(Fuzzy) -> fuzzy_filter_fun(Fuzzy) ->
REFuzzy = lists:map(fun({K, like, S}) -> REFuzzy = lists:map(fun({K, like, S}) ->
{ok, RE} = re:compile(S), {ok, RE} = re:compile(escape(S)),
{K, like, RE} {K, like, RE}
end, Fuzzy), end, Fuzzy),
fun(MsRaws) when is_list(MsRaws) -> fun(MsRaws) when is_list(MsRaws) ->
@ -628,6 +628,9 @@ fuzzy_filter_fun(Fuzzy) ->
, MsRaws) , MsRaws)
end. end.
escape(B) when is_binary(B) ->
re:replace(B, <<"\\\\">>, <<"\\\\\\\\">>, [{return, binary}, global]).
run_fuzzy_filter(_, []) -> run_fuzzy_filter(_, []) ->
true; true;
run_fuzzy_filter(E = {_, #{clientinfo := ClientInfo}, _}, [{Key, _, RE} | Fuzzy]) -> run_fuzzy_filter(E = {_, #{clientinfo := ClientInfo}, _}, [{Key, _, RE} | Fuzzy]) ->