這篇文章主要介紹了php驗(yàn)證手機(jī)號碼的方法,驗(yàn)證手機(jī)號碼通常利用php正則表達(dá)試驗(yàn)證了,手機(jī)號的規(guī)則是長度11位然后是13,15,18等等開頭,這個(gè)我們只要加以分類規(guī)劃并可實(shí)現(xiàn)完美手機(jī)號碼驗(yàn)證正則了,需要的朋友可以參考下
大家都應(yīng)該有這個(gè)常識,中國的手機(jī)號碼都是以數(shù)字“1”開頭,然后利用“0~9”10個(gè)數(shù)字組成的11位數(shù)字組合,那么我們的驗(yàn)證規(guī)則肯定要根據(jù)這個(gè)思路來寫。
根據(jù)上面的簡單思路,我們便可以寫下以下的驗(yàn)證代碼,代碼如下:
- <?php
- //本代碼僅僅是提供一些思路
- //距離實(shí)際應(yīng)用還有一些距離
- $mobile = '15858588585';
- //下面的1便是手機(jī)的第一位數(shù)字必須為數(shù)字1
- //[0-9]指后面的數(shù)字均為0~9的數(shù)字
- //{9}這中間的9指的是手機(jī)號碼除了第一位數(shù)外,其他要重復(fù)10次,剛好就是11位數(shù)了
- if(!preg_match('/^1([0-9]{9})/',$mobile)) exit('您的手機(jī)號碼不正確');
- ?>
但上面的代碼顯然是不夠嚴(yán)謹(jǐn)?shù)?因?yàn)檫@樣,即使“18888888888”這樣的手機(jī)號碼也能通過驗(yàn)證了,因此我們還要對其進(jìn)行更為嚴(yán)格的驗(yàn)證,在嚴(yán)格之前請讓我們先來看看中國常見的手機(jī)號碼前三位都有那些:
移動(dòng)手機(jī)號碼:
134、135、136、137、138、139、150、151、157(TD)、158、159、187、188
聯(lián)通手機(jī)號碼:
130、131、132、152、155、156、185、186
電信手機(jī)號碼:
133、153、180、189、(1349衛(wèi)通)
那么根據(jù)上面的特征,我們就可以將代碼修改成這樣的規(guī)則了,代碼如下:
- <?php
- function checkMobile($str)
- {
- $pattern = “/^(13|15)d{9}$/”;
- if (preg_match($pattern,$str))
- {
- Return true;
- }
- else
- {
- Return false;
- }
- }
- //調(diào)用函數(shù)
- $str = checkMobile(“15800000001″);
- if($str)
- {
- echo(“符合手機(jī)號碼標(biāo)準(zhǔn)”);
- }
- else
- {
- echo(“不符合手機(jī)號碼標(biāo)準(zhǔn)”);
- }
- ?>
上面只能騅13,15開頭的,如果有新段就不行了,我們可加以修改,代碼如下:
- function is_mobile($str){
- return preg_match("/^(((d{3}))|(d{3}-))?13d{9}$/", $str);
- }
這樣就可以驗(yàn)證所有的手機(jī)號碼了,整個(gè)解析思路環(huán)環(huán)相扣,針對php驗(yàn)證手機(jī)號碼進(jìn)行詳細(xì)分析,得出解決方法。
以上就是為大家分享的php驗(yàn)證手機(jī)號碼的方法,希望對大家的學(xué)習(xí)有所幫助。
|
新聞熱點(diǎn)
疑難解答