实现银行卡号每隔四位加一个空格, 例如:6222023100014763381 -->6222 0231 0001 4763 381
1. 使用正则表达式
javascript
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. 使用字符串操作
javascript
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 方法
javascript
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"题目要点:
- 正则表达式 方法简洁且易于理解,适用于大多数情况。
- 字符串操作 方法更直观,对于处理自定义逻辑非常有用。
reduce方法 适合喜欢函数式编程的开发者,处理起来可能更灵活。