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

javascript基于keyup和onkeypress对带分隔符逗号的正数和负数的限制,javascript,html,asp.net,delimiter,Javascript,Html,Asp.net,Delimiter,今天我在给负数和正数划界时遇到了问题。例如,我有一个文本框来插入我的号码和写下号码后的结果。突然,数字被逗号分隔符分隔开,如下图所示,数字为正或负 eg : 1000 -> 1,000 -1000 -> -1,000 -1000.12 -> -1,000.12 -0.00001 -> -0.00001 如何使用javascript实现这一点,我知道的是使用onkeypress和onkeyup。非常感谢:这不是最好的解决方案,但您可以根据

今天我在给负数和正数划界时遇到了问题。例如,我有一个文本框来插入我的号码和写下号码后的结果。突然,数字被逗号分隔符分隔开,如下图所示,数字为正或负

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',函数E{ msg.value=getFormattedDatamsg.value; }; 函数checkNumericstr{ 返回str.replace/\,/g; } Number.prototype.format=函数{ 返回这个.toString.replace/\d?=\d{3}+?!\d/g,$1,; }; 函数getFormattedDatanum{ var i=checkNumericnum, isNegative=checkNumericnum<0, 瓦尔; 如果num.indexOf'>-1{ 返回num; } 如果num[num.length-1]=','{ 返回num; } 否则,如果长度小于3{ 返回i; }否则{ val=Numberi.replace/[^\d]+/g; } 返回值为负?'-':+val.format; }
数字后面的逗号怎么样?你介意告诉我他们是怎么工作的吗?非常感谢您的帮助:@faris fajar请澄清您的问题。在示例中,有类似-1000.12到-1000.12的十进制数。但是从我尝试过的运行代码片段来看,它接受了多个点'。@faris fajar如果用户添加了多个点,那么这是用户的错误,因为十进制数只接受一个点。为了解决这个问题,你需要做的就是检查点出现的次数,在你的情况下,只接受一个点,如果它再次出现,就不要添加。我澄清你的疑问了吗?