Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: (isMobilePhone) Add mobile phone validation for Cameroon (fr-CM) #1772

Merged
merged 11 commits into from
Oct 31, 2021
Merged

Conversation

tarob0ba
Copy link
Contributor

@tarob0ba tarob0ba commented Oct 10, 2021

I have added a regex for validating Cameroonian mobile numbers which should work. I'm not super comfortable with regular expressions, so if I have screwed something up, please let me know and I will (hopefully) be able to fix it.

Checklist

  • PR contains only changes related; no stray files, etc.
  • README updated (where applicable)
  • Tests written (where applicable)

I have added a regex for validating Cameroonian mobile numbers which should work. I'm not super comfortable with regular expressions, so if I have screwed something up, please let me know. I have done some basic testing and it has functioned fine thus far.
@tarob0ba
Copy link
Contributor Author

tarob0ba commented Oct 10, 2021

Fixing the commas now. My bad!

Fix my sloppy tests. I'm really tired and probably should not be working on this, but I accidentally added an extra digit while typing.
@codecov
Copy link

codecov bot commented Oct 10, 2021

Codecov Report

Merging #1772 (374724a) into master (5773869) will not change coverage.
The diff coverage is n/a.

Impacted file tree graph

@@            Coverage Diff            @@
##            master     #1772   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files          102       102           
  Lines         2052      2052           
  Branches       463       463           
=========================================
  Hits          2052      2052           
Impacted Files Coverage Δ
src/lib/isMobilePhone.js 100.00% <ø> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 5773869...374724a. Read the comment docs.

@tarob0ba
Copy link
Contributor Author

I apologize for the mistakes that I've made while doing this; I'm really anxious that I've messed something critical up.

@tarob0ba tarob0ba changed the title feat(isMobilePhone): Add mobile phone validation for Cameroon (fr-CM) feat: (isMobilePhone) Add mobile phone validation for Cameroon (fr-CM) Oct 11, 2021
@tux-tn
Copy link
Member

tux-tn commented Oct 18, 2021

I apologize for the mistakes that I've made while doing this; I'm really anxious that I've messed something critical up.

No worries, tests and linter are here to fix those mistakes. I suggest next time you run them locally to detect that kind of problems, you just need to run npm test before committing and pushing your code

Copy link
Member

@tux-tn tux-tn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for your PR @beckettnormington !

I Added a comment concerning your regex, can you address it?

@@ -74,6 +74,7 @@ const phones = {
'fi-FI': /^(\+?358|0)\s?(4(0|1|2|4|5|6)?|50)\s?(\d\s?){4,8}\d$/,
'fj-FJ': /^(\+?679)?\s?\d{3}\s?\d{4}$/,
'fo-FO': /^(\+?298)?\s?\d{2}\s?\d{2}\s?\d{2}$/,
'fr-CM': /^((237) ?|(\+237) ?)([0-9] ?){9}$/,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like you want to validate country prefix with and without the + sign. An easier way to do this would be:

  • /^(\+?237)? ([0-9] ?){9}$/

I have two questions tho:

  • Are spaces valid in Cameroon mobile phones (Most of the mobile phone validators we have don't allow spaces)
  • There is some carrier prefixes for mobile phone numbers as shown here. Can you please update your regex to take into consideration that mobile prefix?

Copy link
Contributor Author

@tarob0ba tarob0ba Oct 18, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the feedback! I'm currently writing a regex that takes your comments into account.

1.) Spaces don't seem to be valid, my bad.
2.) I'm taking the latest updated mobile prefix (6) from November 21, 2014. If that needs to be updated, let me know as I wasn't completely sure.

I'll update the tests to invalidate landline numbers.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Alright, done. 😄

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you @beckettnormington, looks like you still have a space between the country prefix and the local part of the phone number. Can you correct that and we should be good to go

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Whoops, completely forgot about that! I’ll fix that now. My bad!

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed.

@tux-tn tux-tn added 🎉 first-pr 🧹 needs-update For PRs that need to be updated before landing labels Oct 18, 2021
Add mobile prefix (6) to regex, remove space allowance, and optimize regex
@tarob0ba tarob0ba requested a review from tux-tn October 18, 2021 20:30
tux-tn
tux-tn previously approved these changes Oct 20, 2021
Copy link
Member

@tux-tn tux-tn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM ! Thank you 🎉

@tux-tn tux-tn added hacktoberfest-accepted ready-to-land For PRs that are reviewed and ready to be landed and removed 🧹 needs-update For PRs that need to be updated before landing labels Oct 20, 2021
@profnandaa
Copy link
Member

@beckettnormington -- pls fix the merge conflict on README and we should be good to go.

@profnandaa profnandaa added the mc-to-land Just merge-conflict standing between the PR and landing. label Oct 30, 2021
@tarob0ba
Copy link
Contributor Author

tarob0ba commented Oct 30, 2021

Resolved merge conflict, @profnandaa.

@tarob0ba tarob0ba requested a review from tux-tn October 30, 2021 21:29
Copy link
Member

@tux-tn tux-tn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Thank you for fixing merge conflicts

@profnandaa profnandaa merged commit f2381e0 into validatorjs:master Oct 31, 2021
profnandaa pushed a commit that referenced this pull request Oct 31, 2021
* Add Cameroon validation regex

I have added a regex for validating Cameroonian mobile numbers which should work. I'm not super comfortable with regular expressions, so if I have screwed something up, please let me know. I have done some basic testing and it has functioned fine thus far.

* Update README to include fr-CM in isMobilePhone

* Add (very) basic testing for Cameroonian mobile number

* Fix missing brace (whoops!)

* Fix commas (I hope)

* Fix sloppy tests

Fix my sloppy tests. I'm really tired and probably should not be working on this, but I accidentally added an extra digit while typing.

* Update regex for correctness

Add mobile prefix (6) to regex, remove space allowance, and optimize regex

* Update tests for correctness

* Remove invalid space

Sorry!

* Rerun failed tests (internal server error)
profnandaa pushed a commit that referenced this pull request Oct 31, 2021
* Add Cameroon validation regex

I have added a regex for validating Cameroonian mobile numbers which should work. I'm not super comfortable with regular expressions, so if I have screwed something up, please let me know. I have done some basic testing and it has functioned fine thus far.

* Update README to include fr-CM in isMobilePhone

* Add (very) basic testing for Cameroonian mobile number

* Fix missing brace (whoops!)

* Fix commas (I hope)

* Fix sloppy tests

Fix my sloppy tests. I'm really tired and probably should not be working on this, but I accidentally added an extra digit while typing.

* Update regex for correctness

Add mobile prefix (6) to regex, remove space allowance, and optimize regex

* Update tests for correctness

* Remove invalid space

Sorry!

* Rerun failed tests (internal server error)
@tarob0ba tarob0ba deleted the patch-1 branch November 1, 2021 00:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🎉 first-pr hacktoberfest-accepted mc-to-land Just merge-conflict standing between the PR and landing. ready-to-land For PRs that are reviewed and ready to be landed
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants