JS简单实现姓名(单姓、复姓)的脱敏

学习 · 2022-02-16

前言

互联网个人姓名隐私,大部分都喜欢对名称脱敏处理。形如: 许** 马** 欧阳**

代码实现

    function formatName(name) {
        // 复姓氏
        var doubleSurname = [
            '欧阳', '太史', '端木', '上官', '司马', '东方', '独孤', '南宫',
            '万俟', '闻人', '夏侯', '诸葛', '尉迟', '公羊', '赫连', '澹台', '皇甫', '宗政', '濮阳',
            '公冶', '太叔', '申屠', '公孙', '慕容', '仲孙', '钟离', '长孙', '宇文', '司徒', '鲜于',
            '司空', '闾丘', '子车', '亓官', '司寇', '巫马', '公西', '颛孙', '壤驷', '公良', '漆雕', '乐正',
            '宰父', '谷梁', '拓跋', '夹谷', '轩辕', '令狐', '段干', '百里', '呼延', '东郭', '南门', '羊舌',
            '微生', '公户', '公玉', '公仪', '梁丘', '公仲', '公上', '公门', '公山', '公坚', '左丘', '公伯',
            '西门', '公祖', '第五', '公乘', '贯丘', '公皙', '南荣', '东里', '东宫', '仲长', '子书', '子桑',
            '即墨', '达奚', '褚师', '吴铭'
        ];

        if(name == '') {
            name = '中国电信股份有限公司';
        }

        var subName = '', outName = '';
        subName = name.substring(0, 2);
        // 是否存在复姓
        if(doubleSurname.includes(subName) ) {
            outName = subName;
        } else {
            outName = name.substring(0, 1);
        }

        // 多+2*
        return outName + (Math.pow(10, 2) + '').replace('1', '').replace(/0/g, '*');
    }
js
Theme Jasmine by Kent Liao | 桂ICP备15008025号-6