What is the regular expression for International phone number validation in php or zend?

微笑、不失礼 提交于 2019-12-10 14:17:11

问题


I have a zend form where I have a phone number field and have to check for validator.

I have decided to use regular expression for that. I searched google but the results I have is not working.

Can anyone please provide me the regular expression. here is my code:

 $phone = new Zend_Form_Element_Text('phone');
            $phone->setRequired(true);
            $phone->setLabel('Phone :')
            ->addFilter('StripTags')
            ->addValidator('NotEmpty', false, array('messages'=>'phone cannot be empty'))
            ->addFilter('StringTrim')
            ->addValidator('regex', false, array('/^[0-9 ]+$/','messages'=>'not a valid phone number'))
            ->addValidator('StringLength', false, array(5, 25, 'messages'=>'phone must be 5-25 character'))

Thanks in advance


回答1:


/^((\+|00)\d{1,3})?\d+$/

Try the above expression. hope this helps.




回答2:


Please note that phone number is one of the hardest everyday data validations that exist (along with email, that can contain "+" for example or port number in domain). You should understand the implications of using "some" regex. There may be some users (even whole countries) that won't match some regexes. Or users can input numbers, that are not phone numbers even though they match the regex.

http://en.wikipedia.org/wiki/E.164

There's been an issue about Zend_Phone to implement E.164. But I was not implemented in the end. The accepted solution (/^((\+|00)\d{1,3})?\d+$/) would match even next string as valid phone:

+0000000000000000000000000000000000000000000000 



回答3:


You can try this, works for me

/^(\+[\d|\-]*)\s([0-9]+)$/

or extended version

/^(\+[011|999|998|997|996|995|994|993|992|991|990|979|978|977|976|975|974|973|972|971|970|969|968|967|966|965|964|963|962|961|960|899|898|897|896|895|894|893|892|891|890|889|888|887|886|885|884|883|882|881|880|879|878|877|876|875|874|873|872|871|870|859|858|857|856|855|854|853|852|851|850|839|838|837|836|835|834|833|832|831|830|809|808|807|806|805|804|803|802|801|800|699|698|697|696|695|694|693|692|691|690|689|688|687|686|685|684|683|682|681|680|679|678|677|676|675|674|673|672|671|670|599|598|597|596|595|594|593|592|591|590|509|508|507|506|505|504|503|502|501|500|429|428|427|426|425|424|423|422|421|420|389|388|387|386|385|384|383|382|381|380|379|378|377|376|375|374|373|372|371|370|359|358|357|356|355|354|353|352|351|350|299|298|297|296|295|294|293|292|291|290|289|288|287|286|285|284|283|282|281|280|269|268|267|266|265|264|263|262|261|260|259|258|257|256|255|254|253|252|251|250|249|248|247|246|245|244|243|242|241|240|239|238|237|236|235|234|233|232|231|230|229|228|227|226|225|224|223|222|221|220|219|218|217|216|215|214|213|212|211|210|98|95|94|93|92|91|90|86|84|82|81|66|65|64|63|62|61|60|58|57|56|55|54|53|52|51|49|48|47|46|45|44|43|41|40|39|36|34|33|32|31|30|27|20|7|1|\-]*)\s([0-9]+)/


来源:https://stackoverflow.com/questions/12551473/what-is-the-regular-expression-for-international-phone-number-validation-in-php

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!