出於安全考慮,我們有時需要將一個手機號的某幾位替換成*號,一般是手機號的第4-7位,如我們把手機號13813818979變成138****8979,有兩種方式
1. 在前台頁面處理
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>test</title>
<script type="text/javascript">
function test(phone) { phone = phone.replace(/(\d{3})\d{4}(\d{4})/, '$1****$2'); return phone; } console.log('test', test('13813818979')); </script>
</head>
<body>
</body>
</html>
最終效果:
2. 在后台代碼中處理
/** * 將手機號碼第4位到第7位替換成* */
public class Test { public static void main(String [] args){ String tel = "13813818979"; // 括號表示組,被替換的部分$n表示第n組的內容
tel = tel.replaceAll("(\\d{3})\\d{4}(\\d{4})", "$1****$2"); System.out.print(tel); } }
最終效果:
原理解析:
正則表達式中,替換字符串,括號的意思是分組,在replace()方法中,參數二中可以使用$n(n為數字)來依次引用模式串中用括號定義的字串。"(\d{3})\d{4}(\d{4})", "$1****$2"的這個意思就是用括號,分為(前3個數字)中間4個數字(最后4個數字)替換為(第一組數值,保持不變$1)(中間為*)(第二組數值,保持不變$2)