>php教程 >PHP源码 >php中固定电话号码和手机号码正则表达式验证

php中固定电话号码和手机号码正则表达式验证

ringa_lee
ringa_lee원래의
2018-05-12 16:48:189288검색

     现在我们来总结一下关于php中固定电话号码和手机号码正则表达式验证,本实现可以验证目前所有中国座机与移动电话号码,有需要的朋友可参考一下。

086-区号-号码-分机
^086-[1-9][0-9]{1,4}-[1-9][0-9]{4,7}-[0-9]{3,4}$

2G的手机号差不多都是13开头

代码如下    复制代码    

$mobilephone=trim($_POST["smMobilePhone"]); 
//手机号码的正则验证 
if(preg_match("/^13[0-9]{1}[0-9]{8}$|15[0189]{1}[0-9]{8}$|189[0-9]{8}$/",$mobilephone)){ 
//验证通过 
}else{ 
//手机号码格式不对 
}

3G的号以150、151、158、159开头,还有就是189开头,所以代码如下。

代码如下    复制代码    

<?php
$mobilephone="18000000000";
if(preg_match("/^13[0-9]{1}[0-9]{8}$|15[0189]{1}[0-9]{8}$|189[0-9]{8}$/",$mobilephone)){ 
echo &#39;验证通过&#39;; 

}else{ 
echo &#39;手机号码格式不对&#39;; 

}

注意

故先要整清楚现在已经开放了多少个号码段,国家号码段分配如下:
移动:134、135、136、137、138、139、150、151、157(TD)、158、159、187、188

联通:130、131、132、152、155、156、185、186

电信:133、153、180、189、(1349卫通)

加上js处理

JScript code

代码如下    复制代码    

<script type="text/javascript">
var patter = /^1(5[0-35-9]|8[06789]|3[0-9]|47)d{8}$/;
/**
* 匹配固定电话 (区号-)+号码 区号可以不写,-也可以不写 匹配大部分固话,但不包括4位以上的区号地区的电话
*/
var patter = /^(0(10|21|22|23|[1-9][0-9]{2})(-|))?[0-9]{7,8}$/
</script>

/^13d{9}$/gi手机号正则表达式

代码如下    复制代码    

public static bool IsValidMobileNo(string MobileNo)
{
const string regPattern = @"^(130|131|132|133|134|135|136|137|138|139)d{8}$";
return Regex.IsMatch(MobileNo, regPattern);
}

正则表达式--验证手机号码:13[0-9]{9}

实现手机号前带86或是+86的情况:^((+86)|(86))?(13)d{9}$

电话号码与手机号码同时验证:(^(d{3,4}-)?d{7,8})$|(13[0-9]{9})

提取信息中的中国手机号码:(86)*0*13d{9}

提取信息中的中国固定电话号码:((d{3,4})|d{3,4}-|s)?d{8}

提取信息中的中国电话号码(包括移动和固定电话):((d{3,4})|d{3,4}-|s)?d

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.