电话号码的判断--使用正则表达式的示例
生活随笔
收集整理的這篇文章主要介紹了
电话号码的判断--使用正则表达式的示例
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?code copy from http://blog.csdn.net/kwklover/archive/2005/01/12/250326.aspx
thanks to kwklover
怕忘了所以copy
????????/**////?<summary>
????????///?判斷號碼是聯通,移動,電信中的哪個,在使用本方法前,請先驗證號碼的合法性
????????///?規則:前三位為130-133?聯通?;前三位為135-139或前四位為1340-1348?移動;?其它的應該為電信
????????///?</summary>
????????///?<param?name="mobile">要判斷的號碼</param>
????????///?<returns>返回相應類型:1代表聯通;2代表移動;3代表電信</returns>
????????public?static?int?GetMobileType(string?mobile)?
????????{
????????????string[]?chinaUnicom??=?new?string[]?{"130","131","132","133"}?;
????????????string[]?chinaMobile1?=?new?string[]?{"135","136","137","138","139"}?;
????????????string[]?chinaMobile2?=?new?string[]?{"1340","1341","1342","1343","1344","1345","1346","1347","1348"}?;
????????????bool?bolChinaUnicom??=?(Array.IndexOf(chinaUnicom,mobile.Substring(0,3))?>=?0)?;
????????????bool?bolChinaMobile1?=?(Array.IndexOf(chinaMobile1,mobile.Substring(0,3))?>=0)?;
????????????bool?bolChinaMobile2?=?(Array.IndexOf(chinaMobile2,mobile.Substring(0,4))?>=0)?;
????????????if?(bolChinaUnicom)
????????????????return?1??;//聯通
????????????if?(?bolChinaMobile1?||?bolChinaMobile2?)
????????????????return?2?;?//移動
????????????
????????????return?3?;?//其他為電信
????????}
注:有朋友建議,第二方法用正則表達式實現更好,確實不錯,下面把第二方法的新實現貼上:
????????/**////?<summary>
????????///?判斷號碼是聯通,移動,電信中的哪個,在使用本方法前,請先驗證號碼的合法性
????????///?規則:前三位為130-133?聯通?;前三位為135-139或前四位為1340-1348?移動;?其它的應該為電信
????????///?</summary>
????????///?<param?name="mobile">要判斷的號碼</param>
????????///?<returns>返回相應類型:1代表聯通;2代表移動;3代表電信</returns>
????????public?static?int?GetMobileType(string?mobile)
????????{
????????????if?(IsChinaUnicomNumber(mobile))
????????????????return?1?;
????????????if?(IsChinaMobileNumber(mobile))
????????????????return?2?;
????????????return?3?;
????????}
????????//是否是聯通的號碼?測試通過
????????private?static?bool?IsChinaUnicomNumber(string?mobile)
????????{
????????????string?sPattern?=?"^(130|131|132|133)[0-9]{8}";
????????????bool?isChinaUnicom?=?Regex.IsMatch(mobile,sPattern)?;
????????????return?isChinaUnicom?;
????????}
????????//是否是移動的號碼?測試通過
????????private?static?bool?IsChinaMobileNumber(string?mobile)?
????????{
????????????string?sPattern?=?"^(135|136|137|138|139|1340|1341|1342|1343|1344|1345|1346|1347|1348)[1-9]{7,8}"?;
????????????return?Regex.IsMatch(mobile,sPattern)?;
????????}
版權聲明:CSDN是本Blog托管服務提供商。如本文牽涉版權問題,CSDN不承擔相關責任,請版權擁有者直接與文章作者聯系解決。
thanks to kwklover
怕忘了所以copy
????????/**////?<summary>
????????///?判斷號碼是聯通,移動,電信中的哪個,在使用本方法前,請先驗證號碼的合法性
????????///?規則:前三位為130-133?聯通?;前三位為135-139或前四位為1340-1348?移動;?其它的應該為電信
????????///?</summary>
????????///?<param?name="mobile">要判斷的號碼</param>
????????///?<returns>返回相應類型:1代表聯通;2代表移動;3代表電信</returns>
????????public?static?int?GetMobileType(string?mobile)?
????????{
????????????string[]?chinaUnicom??=?new?string[]?{"130","131","132","133"}?;
????????????string[]?chinaMobile1?=?new?string[]?{"135","136","137","138","139"}?;
????????????string[]?chinaMobile2?=?new?string[]?{"1340","1341","1342","1343","1344","1345","1346","1347","1348"}?;
????????????bool?bolChinaUnicom??=?(Array.IndexOf(chinaUnicom,mobile.Substring(0,3))?>=?0)?;
????????????bool?bolChinaMobile1?=?(Array.IndexOf(chinaMobile1,mobile.Substring(0,3))?>=0)?;
????????????bool?bolChinaMobile2?=?(Array.IndexOf(chinaMobile2,mobile.Substring(0,4))?>=0)?;
????????????if?(bolChinaUnicom)
????????????????return?1??;//聯通
????????????if?(?bolChinaMobile1?||?bolChinaMobile2?)
????????????????return?2?;?//移動
????????????
????????????return?3?;?//其他為電信
????????}
注:有朋友建議,第二方法用正則表達式實現更好,確實不錯,下面把第二方法的新實現貼上:
????????/**////?<summary>
????????///?判斷號碼是聯通,移動,電信中的哪個,在使用本方法前,請先驗證號碼的合法性
????????///?規則:前三位為130-133?聯通?;前三位為135-139或前四位為1340-1348?移動;?其它的應該為電信
????????///?</summary>
????????///?<param?name="mobile">要判斷的號碼</param>
????????///?<returns>返回相應類型:1代表聯通;2代表移動;3代表電信</returns>
????????public?static?int?GetMobileType(string?mobile)
????????{
????????????if?(IsChinaUnicomNumber(mobile))
????????????????return?1?;
????????????if?(IsChinaMobileNumber(mobile))
????????????????return?2?;
????????????return?3?;
????????}
????????//是否是聯通的號碼?測試通過
????????private?static?bool?IsChinaUnicomNumber(string?mobile)
????????{
????????????string?sPattern?=?"^(130|131|132|133)[0-9]{8}";
????????????bool?isChinaUnicom?=?Regex.IsMatch(mobile,sPattern)?;
????????????return?isChinaUnicom?;
????????}
????????//是否是移動的號碼?測試通過
????????private?static?bool?IsChinaMobileNumber(string?mobile)?
????????{
????????????string?sPattern?=?"^(135|136|137|138|139|1340|1341|1342|1343|1344|1345|1346|1347|1348)[1-9]{7,8}"?;
????????????return?Regex.IsMatch(mobile,sPattern)?;
????????}
版權聲明:CSDN是本Blog托管服務提供商。如本文牽涉版權問題,CSDN不承擔相關責任,請版權擁有者直接與文章作者聯系解決。
轉載于:https://www.cnblogs.com/henry_zjk/articles/100296.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的电话号码的判断--使用正则表达式的示例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用工具类实现通用分页处理
- 下一篇: 介绍几款Web TimeSheet相关的