最新手机号正则表达式验证方法(scala版)
生活随笔
收集整理的這篇文章主要介紹了
最新手机号正则表达式验证方法(scala版)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
今天在做運營商標簽,其中通話和短信兩部分標簽需要區分手機號碼和非手機號碼,并且還要考慮手機號碼前面的0086、86等前綴。
首先考慮到手機號碼驗證最方便的就是正則表達式,于是整理了一份最新的手機號碼驗證的正則表達式。
以下是三大運營商的號段分布:
*移動號段: 134,135,136,137,138,139,147,150,151,152,157,158,159,170,178,182,183,184,187,188
* 聯通號段: 130,131,132,145,155,156,170,171,175,176,185,186
* 電信號段: 133,149,153,170,173,177,180,181,189
由三大運營商的號段分布的出正則表達式:
regex = "^((13[0-9])|(14[5,7,9])|(15[^4])|(18[0-9])|(17[0,1,3,5,6,7,8]))[0-9]{8}$"有了正則表達式,核心問題就解決了,然后考慮去掉0086和86等前綴的問題,這里利用字符串的截取方法slice(),從最后一位開始,往前截取11位。
最終的代碼如下:
def isMobileNumber(number: String): Boolean ={val regex = "^((13[0-9])|(14[5,7,9])|(15[^4])|(18[0-9])|(17[0,1,3,5,6,7,8]))[0-9]{8}$".rval length = number.lengthregex.findFirstMatchIn(number.slice(length-11,length)) != None}歡迎關注我的公眾號——數據楊公子。本公眾號會分享包括但不限于大數據、數據治理、元數據管理、python 等方面的技術文章,主旨是和大家一起共同成長,用技術來認識我們這個數據的時代。
總結
以上是生活随笔為你收集整理的最新手机号正则表达式验证方法(scala版)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ctr多少正常_亚马逊广告ctr多少才算
- 下一篇: HDU 4267 A Simple Pr