Я пытаюсь объединить две функции Javascript в один код. Первая функция, предназначенная для класса ".commas", вставляет запятую после 3 цифр. Вторая функция с именем «floatKey» допускает использование только одной десятичной точки перед последними двумя цифрами.
Я попытался вставить функцию класса ".commas" во вторую и удалил инструкцию "event.preventDefault if", но результат оказался ненадежным - он позволял больше цифр после запятой вместе с запятыми. Также были удалены все запятые перед десятичной точкой. Я также разрешил использовать charCode 44 как исключение для оператора if в функции floatKey, но все, что он делал, это показывал и мгновенно пропускал запятые. Как бы я совместил эти две функции, чтобы заставить обе работать?
Мои коды: функция класса ".commas":
$(".commas").keyup(function(event){
if(event.which >= 37 && event.which <= 40){
event.preventDefault();
}
var $this = $(this);
var num = $this.val().replace(/,/gi, "");
var num2 = num.split(/(?=(?:\d{3})+$)/).join(",");
console.log(num2);
$this.val(num2);
});
функция "floatKey":
function floatKey(el, evt) {
var charCode = (evt.which) ? evt.which : event.keyCode;
var number = el.value.split('.');
if (charCode != 46 && charCode > 31 && (charCode < 48 || charCode > 57)) {
return false;
}
if(number.length>1 && charCode == 46){
return false;
}
var caratPos = getSelectionStart(el);
var dotPos = el.value.indexOf(".");
if( caratPos > dotPos && dotPos>-1 && (number[1].length > 1)){
return false;
}
return true;
}
Я надеюсь, что объяснил свою проблему достаточно ясно, спасибо за вашу помощь.