Javascript jQuery正则表达式删除不符合要求的数字

Javascript jQuery正则表达式删除不符合要求的数字,javascript,jquery,regex,Javascript,Jquery,Regex,我正在尽力为我的正则表达式问题找到一个解决方案,但失败了。 当输入不是浮点数时,我想用空白(实时)替换输入 这就是我对整数输入所做的 $(document).on("keyup", ".onlyInteger", function(event){ if (!(event.keyCode >=37 && event.keyCode<=40)) { var inputVal = $(this).val(); inputVal = inputVal.repl

我正在尽力为我的正则表达式问题找到一个解决方案,但失败了。 当输入不是浮点数时,我想用空白(实时)替换输入

这就是我对整数输入所做的

$(document).on("keyup", ".onlyInteger", function(event){
if (!(event.keyCode >=37 && event.keyCode<=40)) {
    var inputVal = $(this).val();
    inputVal = inputVal.replace(/[^0-9]/gi,'');

    $(this).val( addComma(inputVal) );
}
任何帮助都将不胜感激。谢谢。

试试
^([0-9,]+)|([1-9,]+\0)\.\d+)$

const regex=/^([0-9,]+$)|([1-9,]+$0)\.\d+)$/gm
常量str='10'
常量数=正则表达式测试(str)?str:'
日志(数字)
使用
^([1-9]+0{0,})|([1-9]\d?(\,\d{3}{0,})| 0)(\。\d+)$
可以满足您的需要

下面是一个简单的测试:

var casesShouldPass=[
"10,000",
"10",
"0.1",
"1.23234",
"1,231.123",
"0.000001",
"1.000",
//我认为以下几点应该通过
"1,234,567",
"1,234,567.00",
"123456",
"12345.3",
"10.3",
"100.4",
"13",
"0",
"9",
"1,230,333,444,555,666.2"
];
变量casesShouldFail=[
".",
".123",
"0001.2",
"-1.01",
"+2.3",
“abc”,
"1.1.1.1",
//我认为以下几点应该失败
"1,23",
"1,2",
"1,",
"0,111",
"0.",
“a.0”,
“0.abc”,
];
var body=document.querySelector(“body”);
var regex=/^([1-9]+0{0,})|([1-9]\d?(\,\d{3}){0,})| 0)(\。\d+)$/;
var testFunc=(arr)=>{
对于(变量i=0;i`;
}
body.innerHTML+=`
`; } testFunc(casesShouldPass);
testFunc(案例应失败)为什么-1.01不是浮点?您在寻找具体的正值吗?从技术上讲,0001.2、-1.01和+2.3是EcmaScript中的合法浮动。您确定要将其排除在外吗?请注意,不同的地区有不同的格式,这可能不符合您的描述/期望。请看和。几个问题。你为什么期望
为true
对于
“10000”
,从技术上讲,它更准确地说是int,而不是float。你一定要用正则表达式吗?(听起来可能是XY问题)。你是想检测浮点数,还是任何一个数字都可以?@Yaelet这是因为我将使用浮点值来指示像10.5这样的区域㎥谢谢,但我想将与此正则表达式不匹配的内容替换为空白实时。你能告诉我这个被否定的正则表达式吗?@yojinkim就像你否定任何模式一样<代码>(?!模式)
10,000 --> true
10 --> true
0.1 --> true
1.23234 --> true
1,231.123 --> true
0.000001 --> true
1.000 --> true


. at the beginning --> false (replace with blank)
0001.2 --> false (replace with blank)
-1.01 --> false (replace with blank)
+2.3 --> false (replace with blank)
characters --> false (replace with blank)
1.1.1.1 --> false (replace with blank)