Validator.js: isMobilePhone - incorrect rule for pt-BR locale

Created on 8 Jul 2020  路  8Comments  路  Source: validatorjs/validator.js

Describe the bug
The regexp in use is incorrect for mobile phones in Brazil, and it also has a few bugs as mentioned below:

Bugs

  1. Second regexp group is useless as first group is always used
    The second group ( [6-9]{1}\d{3}\-?\d{4} ) is included in the first one ( \d{4}\-?\d{4} )

  2. There is an OR operator missing between the first and second group

  3. The two digits that precedes the phone number can be wrapped around parentheses, just like the first 3 digits of the en-US phone number, also it's possible to have a space between the country code and area code, and between the area code and phone number

Examples of phone numbers

With country code and area code

  • +55 11 97123-1234
  • +55 11 7123-1234

Without country code, with area code in parentheses

  • (11) 97123-1234
  • (11) 7123-1234

Without country code, with 0 followed by area code

  • 015 97123-1234
  • 015 7123-1234

Without country code, without 0, with area code

  • 11 97123-1234
  • 11 7123-1234

Suggested RegExp
I'd suggest the usage of the following regexp as it fixes above issues.

/^((\+?55\ ?[1-9]{2}\ ?)|(0[1-9]{2}\ ?)|(\([1-9]{2}\)\ ?)|([1-9]{2}\ ?))((\d{4}\-?\d{4})|(9[6-9]{1}\d{3}\-?\d{4}))$/

馃悰 bug

All 8 comments

Thanks for the suggestion, could you open a PR?

if its still available i will be working asap

Hello my friends I'm having trouble sending to cell phones that the second number of cell 4, for example 11945555555, here in S茫o Paulo / Brazil some phones are like this
Suggest :
/(?=^(+?5{2}-?|0)[1-9]{2}-?\d{4}-?\d{4}$)(^(+?5{2}-?|0)[1-9]{2}-?[6-9]{1}\d{3}-?\d{4}$)|(^(+?5{2}-?|0)[1-9]{2}-?9[4-9]{1}\d{3}-?\d{4}$)/

@lacort Agreed, I was about to publish this but I realised that some numbers in S茫o Paulo might start with 9 and be followed by a 4 (and apparently 3 too), it seems that those are new numbers given by certain ISP companies (like Vivo and Nextel) in S茫o Paulo state (but mainly in S茫o Paulo city). I should have a look at this by the end of the day.

If anybody wants to tackle this as a PR, I would be most appreciative as it is beyond my immediate knowledge.

https://github.com/validatorjs/validator.js/pull/1407

Opened a new PR, with changes I made. It should now support new phone numbers that start with 9 and be followed by 2, 3, 4 and 5 too.

closed in #1407

Was this page helpful?
0 / 5 - 0 ratings

Related issues

frontendmonster picture frontendmonster  路  4Comments

galki picture galki  路  3Comments

Maxreglez picture Maxreglez  路  3Comments

woverton picture woverton  路  4Comments

MindRapist picture MindRapist  路  4Comments