Я бы игнорировал события onkeydown и просто использовал onkeyup. Таким образом, событие запускается только после того, как пользователь поднимает палец, обеспечивая только одно движение за нажатие клавиши.
Чтобы определить, какая клавиша была нажата в вашем обработчике событий, передайте событие в вашу функцию. Здесь - ссылка на значения ключей, поэтому вы можете сделать что-то вроде:
document.onkeyup = function(event) {
var keycode = event.keyCode;
if (keycode === 38) {
moveUp();
}
}
Удалите все не точка / цифры:
var currency = "-$4,400.50";
var number = Number(currency.replace(/[^0-9.-]+/g,""));
Можно попробовать это
<script type="text/javascript">
var str="$1,112.12";
str = str.replace(",","");
str = str.replace("$","");
document.write(parseFloat(str));
</script>
Используйте regex, чтобы удалить форматирование (доллар и запятая), и использовать parseFloat для преобразования строки в число с плавающей точкой. '
var currency = "$1,100.00";
currency.replace(/[$,]+/g,"");
var result = parseFloat(currency) + .05;
Я знаю, что Вы нашли решение своего вопроса, я просто хотел рекомендовать, возможно, посмотреть на следующий более обширный плагин jQuery для Форматов Международного номера:
Международного номера