Fix tld validation
This commit is contained in:
parent
90613b4bae
commit
0e6869c9ea
2 changed files with 21 additions and 6 deletions
|
@ -338,13 +338,15 @@ defmodule AutoLinker.Parser do
|
|||
end
|
||||
|
||||
def is_valid_tld?(true, buffer) do
|
||||
[host] = Regex.run(@match_hostname, buffer, capture: [:host])
|
||||
|
||||
if is_ip?(host) do
|
||||
true
|
||||
with [host] <- Regex.run(@match_hostname, buffer, capture: [:host]) do
|
||||
if is_ip?(host) do
|
||||
true
|
||||
else
|
||||
tld = host |> String.split(".") |> List.last()
|
||||
MapSet.member?(@tlds, tld)
|
||||
end
|
||||
else
|
||||
tld = host |> String.split(".") |> List.last()
|
||||
MapSet.member?(@tlds, tld)
|
||||
_ -> false
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -110,6 +110,19 @@ defmodule AutoLinker.ParserTest do
|
|||
text = "google.com"
|
||||
assert parse(text, url: false, phone: true) == text
|
||||
end
|
||||
|
||||
test "do not link `:test.test`" do
|
||||
text = ":test.test"
|
||||
|
||||
assert parse(text, %{
|
||||
scheme: true,
|
||||
extra: true,
|
||||
class: false,
|
||||
strip_prefix: false,
|
||||
new_window: false,
|
||||
rel: false
|
||||
}) == text
|
||||
end
|
||||
end
|
||||
|
||||
def valid_number?([list], number) do
|
||||
|
|
Loading…
Reference in a new issue