用正規表示式替換手機號為星號 的寫法

2021-08-27 19:10:41 字數 776 閱讀 7328

現在網路越來越關注一些隱私,比如手機號隱藏當中的若干位數字,或隱藏身份證,銀行卡號當中的若干長度為星號

對於一些固定長度的內容轉換其實都挺方便的,但對於一些非定長的內容想保留固定尾部內容或者頭部內容的話就比較麻煩了。

這兩天發現很多朋友都不會寫這個正規表示式,這裡拿出來分享下

比如手機號只顯示頭尾的各3個數字,最簡單的做法就是擷取頭部三個數字和尾部三個數字,然後當中插入5個星號就可以

這種做法顯得比較笨拙,當然效率可能高一些,不過缺乏靈活性,比如人名顯示姓,名字換成對應的*,那人名長度現在一般在2-4個字,具體後面跟多少個星號*,根據人數迭代啥的就麻煩點了

如果使用正則的話,就比較靈活,**也比較簡單。

假設對一串數字,保留頭尾各3個數字,當中全部替換成*的話,**如下:

string mobile = "13123456789";

string outmobile = mobile.replaceall("(?<=\\d)\\d(?=\\d)", "*");

system.out.println(outmobile);

正規表示式的意思是,把所有前面有3個數字,後面有3個數字的數字換成*,那麼於是從字串中的2開始到7均在這個條件範圍內,所以就全部替換了。

其他的可以根據這個靈活變換,當然如果反覆這麼呼叫的話,效能不是很高,所以建議參考replaceall的原始碼,先生成pattern物件,然後直接呼叫pattern.matcher(mobile).replaceall("*");來操作,這樣可以節省物件建立的記憶體及效能方面的消耗

手機號驗證正規表示式

手機號驗證的正則為 var reg 0 13 0 9 15 7 9 153 156 18 7 9 0 9 var reg 0 13 0 9 15 0 9 0 9 移動手機號的驗證正則為 var reg 0 13 4 9 15 7 9 15 0 2 18 7 8 0 9 手機號驗證正規表示式 昨天找了...

用正規表示式驗證郵箱和手機號

正規表示式,又稱正規表示法 常規表示法 英語 regular expression,在 中常簡寫為regex regexp或re 電腦科學的乙個概念。正規表示式使用單個字串來描述 匹配一系列符合某個句法規則的字串。做ios開發的童鞋,應該都用過正規表示式吧。正規表示式很好地,幫助我們判斷乙個字串是否...

Regex 手機號 座機 正規表示式

最近在工作中需要判斷乙個號碼是否是手機號,是否是座機號。這裡的手機和座機的正規表示式基於本文作者目前找到的最新的手機號碼段,區號 截止到2015年8月 座機號碼 new regex 0?10 2 3 1,5,7 4 1,5,7 5 1,3,5,7 7 1,3,5,7,9 8 1,3,7,9 0 9 ...