Biel. 9 Denunciar post Postado Maio 24, 2016 Bom dia todos. Direto ao ponto. Pessoal Estou tentando validar o EX 3 e EX 4, mas não estou conseguindo. Gostaria de saber como faço para validar. ... <?php //EX:1 $regex1 = 'aprendiz'; // <- assim valida //EX:2 $regex2 = 'apr-endiz'; // <- assim valida //EX:3 $regex3 = 'apr-end-iz'; // <- assim não valida //EX:4 $regex4 = 'ap-re-nd-iz'; // <- assim não valida $string = 'apr-end-iz'; $regex3 = '/^[a-z]{1,26}(\-)?[a-z]{1,26}$/'; // <- if (preg_match($regex3, $string)){ echo "aceita - Accept"; } else{ echo "não aceita - Erro "; } ?> Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Maio 24, 2016 Olhe com carinho pra sua ER: :) /^[a-z]{1,26}(\-)?[a-z]{1,26}$/ ^ = começo da string [a-z]{1,26} = uma letra qualquer de uma a 26 vezes (\-)? = 0 ou 1 traço [a-z]{1,26} = uma letra qualquer de uma a 26 vezes Ou seja, sua ER só valida "letras-letras", sendo o traço opcional. Por isso só valida o ex1 (sem traços) e o ex2 (só um traço) Se a intenção é aceitar qualquer quantidade de traços, deixe-o dentro do grupo quantificado: /^([a-z-]{1,26}$/ Compartilhar este post Link para o post Compartilhar em outros sites
Biel. 9 Denunciar post Postado Maio 24, 2016 Beraldo, obrigado por postar. A intenção é colocar dois ou mais traços entre a palavra aprendiz. Traço(s)antes e depois da palavra aprendiz gostaria que não aceitasse. O exemplo que você postou aceita traço antes e depois da palavra aprendiz assim aceita -aprendiz assim aceita aprendiz- assim aceita -aprendiz- Gostaria mesmo é de validar o EX 3 e o EX 4 //EX:1 $regex1 = 'aprendiz'; // <- assim valida //EX:2 $regex2 = 'apr-endiz'; // <- assim valida //EX:3 $regex3 = 'apr-end-iz'; // <- assim não valida //EX:4 $regex4 = 'ap-re-nd-iz'; // <- assim não valida Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Maio 24, 2016 É só fixar letras no início e no fim: /^[a-z]([a-z-]{1,26}[a-z]$/ Isso exige uma letra no início e outra no fim. No meio pode haver de 1 a 26 letras e traços Compartilhar este post Link para o post Compartilhar em outros sites
Biel. 9 Denunciar post Postado Maio 24, 2016 Beraldo muito obrigado. Funcionou legal :D :D :D Compartilhar este post Link para o post Compartilhar em outros sites