角度2管用于信用卡

时间:2017-05-15 04:11:02

标签: angular

我想创建一个管道,每隔4位信用卡/借记卡号码添加一个空格。

这个隐藏了最后4位数字。

export class CreditCardMaskPipe implements PipeTransform {
  transform(plainCreditCard: string): string {
    const visibleDigits = 4;
    let maskedSection = plainCreditCard.slice(0, -visibleDigits);
    let visibleSection = plainCreditCard.slice(-visibleDigits);
    return maskedSection.replace(/./g, '*') + visibleSection;
  }
}

类似的东西,但要添加空格。

4 个答案:

答案 0 :(得分:1)

你可以做这样的事情

export class CreditCardMaskPipe implements PipeTransform {
  transform(plainCreditCard: string): string {
    return plainCreditCard.replace(/\s+/g, '').replace(/(\d{4})/g, '$1 ').trim();
  }
}

const plainCreditCard = '1234567891234567';
function transform(cardNumber) {
    return cardNumber.replace(/\s+/g, '').replace(/(\d{4})/g, '$1 ').trim();
}
console.log(transform(plainCreditCard));

答案 1 :(得分:0)

numberList = 1234223432344234;
outStrint="";
for (var i = 0;i+4<= numberList.toString().length; i+=4) {
    outStrint=outStrint+numberList.toString().slice(i, i + 4)+" "
}
console.log(outStrint);

答案 2 :(得分:0)

你可以这样做:

return [...plainCreditCard].map((chr, idx) => (idx + 1) % 4 ? chr : chr + ' ').join('').trim();

简单摘要:

const plainCreditCard = '1234567890123456';

const test = [...plainCreditCard].map((chr, idx) => (idx + 1) % 4 ? chr : chr + ' ').join('').trim();
console.log(test);

答案 3 :(得分:0)

我的回答是迟到了,但对其他搜索类似问题的人可能会有所帮助 NGX Mask 在转换卡,电话号码等方面确实很有帮助...

https://www.npmjs.com/package/ngx-mask

<span>{{creditCard | mask: '0000 0000 0000 0000'}}</span>