zendframework/zend-i18n

PhoneNumber requires country code

Opened this issue · 6 comments

  • I was not able to find an open or closed issue matching what I'm seeing.
  • This is not a question. (Questions should be asked on chat (Signup here) or our forums.)

Use case, UK business website with enquiry form for UK customers. They are not expected to enter the country code for their phone number. An 11 digit number beginning with 0 is not considered valid. e.g. 0161 123 4567 (calling internationally it would be +44 161 123 4567).
The issue only occurs with UK mobile numbers in my testing and the above is actually correct.

Code to reproduce the issue

$phoneNumber = new \Zend\I18n\Validator\PhoneNumber();
$phoneNumber->isValid('07875121234');

Expected results

Considered valid.

Actual results

Considered invalid.

Not sure of an easy fix for this, or whether the docs should state that the country code is expected?

I believe this is something the Google library takes into account... Looking at an alternative implementation it works as expected: https://giggsey.com/libphonenumber/.

@internalsystemerror
The current problem: the patterns for phone numbers in zend-i18n are very old. We need a script to update these patterns and have to rework all unit tests which belongs to the PhoneNumber validator.

Sorry, this issue report is a feature request and not a bug. The bug are the outdated phone number patterns which are covered in separate issue reports.


I like this feature request because it would be a great improvement for this component!

On further investigation, the original example given above is in fact valid, and it's only UK mobiles which have an issue: e.g. 0787 512 1234.

@internalsystemerror
No problem. We have to write unit tests anyway.

This repository has been closed and moved to laminas/laminas-i18n; a new issue has been opened at laminas/laminas-i18n#3.