This is really just a transliteration problem; and what you're replacing, and what you're replacing it with, is all contiguous. So this will work:
function replaceFullWidthNumerals(s) {
return s.replace( /[\uFF10-\uFF19]/g,
function(m){
return String.fromCharCode( m.charCodeAt() - 0xFEE0 );
}
);
}