Jump to content

Expressão Regular (erro validação)


Fernando Couto
Go to solution Solved by tiago.f,

Recommended Posts

Olá,

Numa regra que estou a construir em PHP (aplicação web) em que valida a introdução de dados do utilizador, tenho o seguinte:

'utilizador' => 'required|regex:/[0-9]{9}\/[0-9]{4}/'

Acontece que ele está a cumprir todos os casos exceto se eu colocar mais do que um dígito (a partir de 5, supostamente só pode pôr exatamente 4) na última regra "[0-9]{4}", por exemplo:

->123456789/123 (não aceita -> certo)

->123456789//123 (não aceita -> certo)

->123456789/1234 (aceita -> certo)

-> 123456789/12345 (aceita -> errado) e se eu acrescentar mais números ele vai sempre aceitando.

 

Alguém me dá alguma dica para ultrapassar este problema?

Link to comment
Share on other sites

  • Solution

Oi. Isso é porque ele apanha essa expressão no meio qualquer outro texto. Testa com ABC123456789/1234ER e verás que aceita também.

Se queres validar que tem essa e apenas essa expressão, tens que definir o início e o fim: /^[0-9]{9}\/[0-9]{4}$/

 

Ps: não testei :)

Edited by tiago.f
  • Vote 1
Link to comment
Share on other sites

Em 30/04/2024 às 11:52, tiago.f disse:

Oi. Isso é porque ele apanha essa expressão no meio qualquer outro texto. Testa com ABC123456789/1234ER e verás que aceita também.

Se queres validar que tem essa e apenas essa expressão, tens que definir o início e o fim: /^[0-9]{9}\/[0-9]{4}$/

 

Ps: não testei 🙂

É essa a resposta! Obrigado!

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.