Маскировка номер кредитной карты 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;
}