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"