银行卡号每隔四位添加一个分隔符

输入卡号:622848110110634315

输出卡号:6228 4811 0110 0634 315

思路:输入一个字符串,分隔成数组,循环数组,如果到第四位就加分隔符号,否则还是自己。下面封装成一个方法,可以每任意位数添加任意分隔符

/**
 * 字符串分割公共方法
 * @param str string [要分割的字符串(卡号)]
 * @param gap number [以多少位分隔]
 * @param sep        [分隔符]
 * @return string    [返回值是分隔后的字符串]
 */
const formatSplitString = (str = '', gap = 1, sep = ' ') => {
    if (!str) {
        return '';
    }
    let l = str.length - 1;
    let strArr = str.split(''); // 将字符串分割成字符串数组
    return strArr.map((elem, i) => {
        if (i % gap === gap - 1 && i !== l) {
            return elem + sep; // 当前元素+分隔符
        } else {
            return elem;
        }
    }).join(''); // 放入一个字符串
}

测试一下:

四位数空格分隔:formatSplitString('622848110110634315', 4, ' ');

输出:
四位数逗号分隔:formatSplitString('622848110110634315', 4, ',');

输出:

 

三位数空格分隔:formatSplitString('622848110110634315', 3, ' ');

输出:

看过别人还用过正则,实现的方式有很多种。

 

 

 

posted @ 2019-05-16 14:12  木易锅巴  阅读(2069)  评论(2编辑  收藏  举报