请稍侯

javascript中使用星号(*)隐藏帐号

2015-09-30

写在前面

在我们日常开发中,经常会涉及到用户的银行招行,支付宝帐号等信息。

为了安全,不至于用户此类信息的泄漏,在前端显示时,需要对此类帐号隐藏其中一段。

实现的方式就是用*隐藏其中部分。

代码

function accountEncrypt(account) {
    var accountLength,atIndex,prefix,endfix;
    accountLength = account.length;
    if (accountLength <= 8) {
        return account;
    }
    atIndex = account.indexOf("@");
    if (atIndex >= 0 && atIndex < 2) {
        return account;
    }
    if (atIndex > 2) {
        prefix = account.substring(0,2);
        endfix = account.substring(atIndex);
        return prefix + asterisk(atIndex - 2) + endfix;
    }
    if (/^\d{11}$/g.test(account)) {
        prefix = account.substring(0,3);
        endfix = account.substring(accountLength - 4);
        return prefix + asterisk(4) + endfix;
    }
    prefix = account.substring(0,4);
    endfix = account.substring(accountLength - 4);
    return prefix + asterisk(accountLength - 8) + endfix;
}

function asterisk(length) {
    var str = "";
    for (var i=0;i<length;i++) {
        str += "*";
    }
    return str;
}

本文由 vvkee 创作,转载请注明原文链接。