Маскировка номер кредитной карты Javascript

На моем JavaScript

<script>
$("#inputCardNo").keydown(function(e){
if(e.keyCode != 8){
var length = $(this).val().replace(/ /g,"").length;
if(length < 12){
   var val = "";
   for(var i = 0; i < length + 1; i++){
      val+="*";
    if((i+1)%4 == 0){
        val+=" ";
      }
   }
   $(this).val(val);
}
if(length < 12 || length >= 16){
    e.preventDefault();       
}
}
});
</script>

Вот прямая трансляция этого JS FIDDLE DEMO

Здесь я хочу, чтобы первые 4 цифры также были без масок. Я боролся со своей собственной логикой. Может ли кто-нибудь указать мне на это?

1 ответ

Это можно сделать следующим образом:

Для маскировки всех цифр, кроме первых 4 и последних 4.

      function maskCreditCard(inputString) {

    // Mask all digits except the first 4 and last 4
    let maskedString = inputString.replace(/\d/g, (match, index) => {
        return index > 3 || index < inputString.length - 4 ? '*' : match;
    });

    return maskedString;
}
Другие вопросы по тегам