Eu não preciso permitir mais de um período (.
) na entrada da string. Qual é a melhor maneira de fazer isso usando Ruby regex?
Respondendo aos comentários:
Eu quero limitar uma entrada de apenas um período no endereço de e-mail durante o registro de e-mail. Eu tenho regex de e-mail básico para entrada de e-mail. Minha maravilha é, se é possível limitar o número de (.
) através do próprio Regex, ou eu deveria usar bibliotecas Ruby.
Sim, é uma questão de novato.
A expressão regular é assim
/A([^@s]+)@((?:[-a-z0-9]+.)+[a-z]{2,})Z/i
Como apenas permitir um período dentro de qualquer parte dele?
Respostas:
2 para resposta № 1Supondo que você quer dizer no máximo um período na parteantes do @, teoricamente seria possível fazer isso com o seguinte regex (ele não permite um ponto como primeiro ou último caractere e não faz nenhuma outra validação):
^[^.]+(.[^.]+)?$
O regex acima apenas lida com a parte antes do@, você terá que adicionar o resto da expressão regular. Ela basicamente corresponde a um grupo de 1 ou mais caracteres não periódicos, seguido por um grupo opcional de um período e seguido por 1 ou mais caracteres não periódicos.
Estou curioso para saber por que você gostaria de limitarregistro para usuários com no máximo um período em seu endereço de e-mail ... isso não parece ser uma restrição sensível, já que é bastante realista que os usuários legitimamente tenham mais de um período em seus endereços.