输入卡号: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, ' ');
输出:
看过别人还用过正则,实现的方式有很多种。