Estou criando um Apple Script para solicitar e receber entrada de um usuário por meio de uma caixa de diálogo. A resposta padrão da caixa de diálogo é "Digite o código". A entrada necessária é um código de 6 dígitos fornecido para cada usuário. Ao receber a entrada (ou código) do usuário, algumas verificações de validação precisam ocorrer, confirmando que a entrada do usuário é aceitável com base nas seguintes condições:
O usuário não pode inserir letras ou símbolos.
A entrada deve estar em um número inteiro (apenas números inteiros e sim zero conta).
O código (entrada), basta ter exatamente (ou igual a) 6 dígitos. Não mais ou menos que 6.
Segundo plano - o código do usuário é gerado ad-hoc a partir de outro aplicativo e é único a cada vez. Não há como fazer referência cruzada a esse código.
Por exemplo, o usuário digita 123456 na caixa de diálogo. Usando o Apple Script, como posso fazer o script, garantindo novamente que o código seja todos os números e com precisão de 6 dígitos?
fonte
Respostas:
Solução 1:
Solução 2:
Esta solução se beneficia de ser extremamente curta, mas também trata o problema como deve ser tratado. É um equívoco dizer que você deseja "validar a entrada do usuário como inteiro" , quando, na verdade, estamos apenas lidando com texto. A senha é uma senha de 6 caracteres e esses caracteres são limitados aos valores unicode que representam dígitos; mas eles ainda são caracteres de texto e não números inteiros em nenhum sentido numérico.
O comentário de Mark contra a questão realmente afirmou isso, mas até eu caí na mente de querer avaliar a entrada como números, o que é parcialmente o que
Solution 1
acima faz; e funciona, e é uma solução perfeitamente boa, mas executa etapas desnecessárias para chegar ao resultado final.Tratando a entrada puramente como texto, o problema, tão sucintamente declarado por Mark, é "Verifique se a string possui 6 caracteres e cada uma delas está no intervalo de 0 a 9". Então é exatamente isso que essa solução faz, em uma linha simples:
A variável
validation
conterá o código de 6 dígitos, se for válido ou"Invalid input"
não.fonte
fonte