使用正则表达式把手机号替换成星号*


出于安全考虑,我们有时需要将一个手机号的某几位替换成*号,一般是手机号的第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)

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM