JSFiddle - React, Tailwind, and code Playground

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/ramda/0.14.0/ramda.min.js"></script>

JavaScript

var cardNumber       = '4761640026883566';
var cardNumberDashed = '4761-6400-1234-2345';
var cardNumberSpaced = '4761 6400 1234 3523';

var ensureOnlyNumbers  = R.replace(/[^0-9]+/g, '');
var maskAllButLastFour = R.replace(/[0-9](?=([0-9]{4}))/g, '*');
var hashedCardNumber   = R.compose(maskAllButLastFour, ensureOnlyNumbers);

document.body.innerHTML = hashedCardNumber(cardNumber)       + '<br/>' + 
                          hashedCardNumber(cardNumberDashed) + '<br/>' + 
                          hashedCardNumber(cardNumberSpaced);