就列如:对下面的手机号列原本值是15834567890,要显示成158****7890,因为报表很多,所以后台查询的代码有些写的sql,有些是hql,除了从sql中改还有没有什么别的方法,查出全部再循环改也不太行,因为有些报表数据量过多
这样?
substr(m_no,1,3)||'****'||substr(m_no,-4)
字符串截取函数,截取前3位,后4位,中间用四个星号拼接一下
最直白的方法当然就是上面说的用substr截,再拼星号。但这看上去不是太优雅哈,我给个正则的方式吧
select regexp_replace('15834567890','(\d{3})\d{4}(\d{4})','\1****\2') from dual;
在前端对手机号列做format处理