javascript 基于keyup和onkeypress的正负数限制,逗号分隔

javascript limit on positive and negative number with delimiter comma based onkeyup and onkeypress

今天我在区分负数和正数时遇到了问题。例如,我有一个文本框来插入我的号码和输入号码后的结果。突然数字用逗号分隔符分隔,这样数字要么是正数要么是负数

eg :  1000 -> 1,000
     -1000 -> -1,000
     -1000.12 -> -1,000.12
     -0.00001 -> -0.00001 

如何使用 javascript 实现此目的,我所知道的是使用 onkeypress 和 onkeyup。非常感谢:)

这不是最好的解决方案,但您可以根据需要实施。

 

 var msg = document.getElementById('myInputBox'),
    numberPattern = /^[0-9]+$/;

msg.addEventListener('keyup', function(e) {
    msg.value = getFormattedData(msg.value);
});

function checkNumeric(str) {
    return str.replace(/\,/g, '');
}
Number.prototype.format = function() {
    return this.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, ",");
};

function getFormattedData(num) {
 var i = checkNumeric(num),
     isNegative = checkNumeric(num) < 0,
        val;
        
    if (num.indexOf('.') > -1) {
        return num;
    }
    else if (num[num.length - 1] === ',') {
     return num;
    }
    else if(i.length < 3) {
      return i;
    }else {
     val = Number(i.replace(/[^\d]+/g, ''));
    }
    
    return (isNegative ? '-' : '') + val.format();
}
<input type="text" id='myInputBox' value="" />