mirror of
https://github.com/rjNemo/exercism-elixir
synced 2026-06-06 02:16:48 +00:00
20 lines
357 B
Elixir
20 lines
357 B
Elixir
defmodule Username do
|
|
@spec sanitize(charlist()) :: charlist()
|
|
def sanitize(''), do: ''
|
|
|
|
def sanitize([ch | rest]) do
|
|
convert(ch) ++ sanitize(rest)
|
|
end
|
|
|
|
defp convert(ch) do
|
|
case ch do
|
|
ch when ch in ?a..?z -> [ch]
|
|
?_ -> '_'
|
|
?ä -> 'ae'
|
|
?ö -> 'oe'
|
|
?ü -> 'ue'
|
|
?ß -> 'ss'
|
|
_ -> ''
|
|
end
|
|
end
|
|
end
|