Verificar se a string é feita somente letras. [RESOLVIDO]

1. Verificar se a string é feita somente letras. [RESOLVIDO]

Saulo Barbosa Santiago dos Santos
angrasbss

(usa Ubuntu)

Enviado em 10/04/2018 - 11:25h

Gostaria de saber um método onde script verifica se a string é composta somente por letras, por exemplo
NOME=S4u10
Se NOME for feito de letras, então está correto
Se NOME possuir algum caractere que não faça parte do alfabeto, então está errado.
No exemplo, o nome SAULO foi escrito com números e letras, desta forma, o script não aceitaria e avisaria do erro




  


2. MELHOR RESPOSTA

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 15/07/2018 - 12:04h

angrasbss escreveu:

Gostaria de saber um método onde script verifica se a string é composta somente por letras, por exemplo
NOME=S4u10
Se NOME for feito de letras, então está correto
Se NOME possuir algum caractere que não faça parte do alfabeto, então está errado.
No exemplo, o nome SAULO foi escrito com números e letras, desta forma, o script não aceitaria e avisaria do erro


Boa tarde.
Segue:
read -p "Entre com o nome: " NOME
[[ "$NOME" =~ ^([A-Za-z]+)$ ]] && echo "Correto, Somente LETRAS" || echo "Errado, tem Números"

Marcelo Oliver


3. Re: Verificar se a string é feita somente letras.

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 10/04/2018 - 13:01h

angrasbss escreveu:

Gostaria de saber um método onde script verifica se a string é composta somente por letras, por exemplo
NOME=S4u10
Se NOME for feito de letras, então está correto
Se NOME possuir algum caractere que não faça parte do alfabeto, então está errado.
No exemplo, o nome SAULO foi escrito com números e letras, desta forma, o script não aceitaria e avisaria do erro



seguinte .. conta números da variável
expr $(echo ${var//[^0-9]/} | wc -c) - 1 


então se for 0 [correto], senão [errado]

var="STRING"
teste=$(expr $(echo ${var//[^0-9]/} | wc -c) - 1)
if [ $teste -eq 0 ]; then
echo "correto"
else
echo "errado"
fi


agora... se a variável for ter outros caracteres sem ser números e letras use assim

compara numero de caracteres com numnero de letras
var="STRING"
total=${#var}
teste=$(expr $(echo ${var//[^a-zA-Z]/} | wc -c) - 1)

if [ $teste -eq $total ]; then
echo "correto"
else
echo "errado"
fi


------------------------------------------| Linux User #621728 |-----------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------| Linux User #621728 |-----------------------------------------







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts