Эликсир - Как проверить, содержит ли строка текст или число («453») - PullRequest
0 голосов
/ 27 сентября 2019

У меня есть список со строками

>> list = ["h3llo","899","3@"]

Если элемент списка имеет хотя бы 1 букву или специальный символ, он считается: текст, в противном случае это: число

>> list = [:text, :number, :text]

Как я могу это сделать?

Ответы [ 2 ]

1 голос
/ 27 сентября 2019

Один из способов - использовать Integer.parse/2:

case Integer.parse(str) do
  {_, ""} -> :number
  _ -> :text
end
0 голосов
/ 27 сентября 2019

Другим способом является простое регулярное выражение

iex> Regex.match?(~r/^\d+$/, "h3llo")
false
iex> Regex.match?(~r/^\d+$/, "899")
true
iex> Regex.match?(~r/^\d+$/, "3@")
false
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...