帳號遮罩

by wales

HTML

<div id="result_even">

</div>
should be 1234**7890

<div id="result_odd">

</div>
should be 123***789

JavaScript

function maskBankAccount(bankAccNo) {
  if (bankAccNo && bankAccNo.length > 3) {
    let repeatStars = 0;
    let middle = 0;
    if (bankAccNo.length % 2 === 1) {
      repeatStars = 3;
      middle = (bankAccNo.length - 1) / 2;
    } else {
      repeatStars = 2;
      middle = bankAccNo.length / 2;
    }
    console.log(middle);
    return `${bankAccNo.substring(0, middle - 1)}${'*'.repeat(repeatStars)}${bankAccNo.substring(middle + repeatStars - 1)}`;
  }
  return '***';
}

let result = maskBankAccount("1234567890");
document.getElementById("result_even").innerHTML = result;
result = maskBankAccount("123456789");
document.getElementById("result_odd").innerHTML = result;