Here is a better and simpler way.
formatCreditCardNumber(unformattedNumber) {
let pureNumber = unformattedNumber.split(" ").join("");
let pureNumberArray = pureNumber.split("");
let formattedNumberArray = [];
for(let i = 0; i < pureNumberArray.length; i++){
if(!pureNumberArray[i].match(ONLY_DIGITS)){
return;
}
if (i != 0 && i % 4 === 0){
formattedNumberArray.push(" ");
}
formattedNumberArray.push(pureNumberArray[i]);
}
return: formattedNumberArray.join("");
}
Comment
ONLY_DIGITS = "^[0-9]*$";
Parent comment
Here is a better and simpler way. formatCreditCardNumber(unformattedNumber) { let pureNumber = unformattedNumber.split(" ").join(""); let pureNumberArray = pureNumber.split(""); let formattedNumberArray = []; for(let i = 0; i < pureNumberArray.length; i++){ if(!pureNumberArray[i].match(ONLY_DIGITS)){ return; } if (i != 0 && i % 4 === 0){ formattedNumberArray.push(" "); } formattedNumberArray.push(pureNumberArray[i]); } return: formattedNumberArray.join(""); }