写了一个简单的手机号码正则

         ///   <summary>
        
///  检查手机号码和云南省的小灵通
        
///   </summary>
        
///   <param name="pMobile"> 要检测的手机号码 </param>
        
///   <param name="corrertMobile"> 输出规则手机号码 </param>
        
///   <returns></returns>
         public   static   bool  CheckPhone_new( string  pMobile, out   string  corrertMobile)
        {
            
bool  isSuccess  =   false ;
            corrertMobile 
=   string .Empty;

            
/*
             *首先匹配手机
             * 前面可以为86或者+86或者没有
             * 号段匹配:
             * 13:除了1349(中国卫通,不属于手机号段)
             * 15:全号段匹配 15
             * 18:180(电信),185,186(联通),187,188(移动),189(电信)
             * 
*/
            
if  (System.Text.RegularExpressions.Regex.IsMatch(pMobile,  @" ^(\+?86)?1(3[0-35-9]\d|34[0-8]|5\d{2}|8[05-9]\d)\d{7}$ " ))
            {
                isSuccess 
=   true ;
                corrertMobile 
=  pMobile.Substring(pMobile.Length  -   11 );
            }
            
else
            {
                
/*
                 * 小灵通匹配,云南省区号:0691西双版纳,0692德宏
                 * 0870昭通,0871昆明,0872大理,0873红河,0874曲靖,0875保山,0876文山,0877玉溪,0878楚雄,0879普洱
                 * 0883临沧,0886怒江,0887迪庆,0888丽江
                 * 匹配模式868711234567,8608711234567,8610608711234567,10608711234567,08711234567,86前面的+可有可无
                 * 
*/
                
if  (System.Text.RegularExpressions.Regex.IsMatch(pMobile,  @" ^((\+?86)|((\+?86)?(106)?0))(87\d|88[36-8]|69[12])[1-9]\d{6}$ " ))
                {
                    isSuccess 
=   true ;
                    corrertMobile 
=   " 0 "   +  pMobile.Substring(pMobile.Length  -   10 );
                }
            }

            
return  isSuccess;
        }

 

JavaScript

 

//  JScript 文件

    
/* *
    * 删除左右两端的空格 调用方式 obj.trim()
    
*/
     String.prototype.trim
= function ()
    {
        
return   this .replace( / (^\s*)|(\s*$) / g, "" );
    }

    
function  CheckPhone(obj)
    {        
        
var  isSuccess = false ;
        
        
var  mobile = document.getElementById(obj).value;
        mobile
= mobile.trim();
        
var  mobileReg = / ^(\+?86)?1(3[0-35-9]\d|34[0-8]|5\d{2}|8[05-9]\d)\d{7}$ / ;
        
var  xiaoLingTongReg = / ^((\+?86)|((\+?86)?(106)?0))(87\d|88[36-8]|69[12])[1-9]\d{6}$ / ;        
        
        
/*
         *首先匹配手机
         * 前面可以为86或者+86或者没有
         * 号段匹配:
         * 13:除了1349(中国卫通,不属于手机号段)
         * 15:全号段匹配 15
         * 18:180(电信),185,186(联通),187,188(移动),189(电信)
         * 
*/
        
if (mobileReg.test(mobile))
        {            
            isSuccess
= true ;   
            
// 赋值,取右边的11位手机号码         
            document.getElementById(obj).value = mobile.substring(mobile.length - 11 ,mobile.length);            
        }
        
else
        {
            
/*
             * 小灵通匹配,云南省区号:0691西双版纳,0692德宏
             * 0870昭通,0871昆明,0872大理,0873红河,0874曲靖,0875保山,0876文山,0877玉溪,0878楚雄,0879普洱
             * 0883临沧,0886怒江,0887迪庆,0888丽江
             * 匹配模式868711234567,8608711234567,8610608711234567,10608711234567,08711234567,86前面的+可有可无
             * 
*/
            
if (xiaoLingTongReg.test(mobile))
            {                             
                isSuccess
= true ;
                
// 0+右边的10位小灵通号码
                document.getElementById(obj).value = " 0 " + mobile.substring(mobile.length - 10 ,mobile.length);                
            }            
        }
        
        
if ( ! isSuccess)
        {
            alert(
" 请输入正确的手机或者小灵通号码! " );
            document.getElementById(obj).focus();
            
        }
        
return  isSuccess;
    }

 

转载于:https://www.cnblogs.com/conan304/archive/2009/07/10/1520812.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值