1. 使用正则表达式
function formatCardNumber(cardNumber) {
// 移除非数字字符(如果有的话)
const cleaned = cardNumber.replace(/\D/g, '');
// 使用正则表达式在每四位后插入一个空格
const formatted = cleaned.replace(/(.{4})/g, '$1 ').trim();
return formatted;
}
// 示例
const cardNumber = '6222023100014763381';
console.log(formatCardNumber(cardNumber)); // 输出: "6222 0231 0001 4763 381"
2. 使用字符串操作
function formatCardNumber(cardNumber) {
// 移除非数字字符(如果有的话)
const cleaned = cardNumber.replace(/\D/g, '');
let formatted = '';
for (let i = 0; i < cleaned.length; i += 4) {
if (i > 0) {
formatted += ' ';
}
formatted += cleaned.substring(i, i + 4);
}
return formatted;
}
// 示例
const cardNumber = '6222023100014763381';
console.log(formatCardNumber(cardNumber)); // 输出: "6222 0231 0001 4763 381"
3. 使用 Array 的 reduce
方法
function formatCardNumber(cardNumber) {
// 移除非数字字符(如果有的话)
const cleaned = cardNumber.replace(/\D/g, '');
return cleaned.split('')
.reduce((acc, digit, index) => {
if (index > 0 && index % 4 === 0) {
acc += ' ';
}
return acc + digit;
}, '');
}
// 示例
const cardNumber = '6222023100014763381';
console.log(formatCardNumber(cardNumber)); // 输出: "6222 0231 0001 4763 381"