javascript regexp只允许数字问题

javascript regexp只允许数字问题,javascript,regex,Javascript,Regex,我有一个文本输入字段,我在其中检查每次单击,因此用户应该只输入数字。我需要用javascript来做 我在我的函数中创建了这个: result = number.replace(/\D/g, '');return result; 我还尝试了result=number.replace(/[^0-9.\-]/g');返回结果 这是有效的,所以它不允许输入除数字以外的任何内容,但如果我按任意字母两次(gg或aa…),则其中一个字母将显示在输入字段中 如果我输入不同的字母(ab,gh,…),那么就可

我有一个文本输入字段,我在其中检查每次单击,因此用户应该只输入数字。我需要用javascript来做

我在我的函数中创建了这个:

 result = number.replace(/\D/g, '');return result;
我还尝试了
result=number.replace(/[^0-9.\-]/g');返回结果

这是有效的,所以它不允许输入除数字以外的任何内容,但如果我按任意字母两次(gg或aa…),则其中一个字母将显示在输入字段中

如果我输入不同的字母(ab,gh,…),那么就可以了,它不允许任何字母。只有当我两次按同一个字母时才会发生这种情况


不确定为什么会发生这种情况,因为regexp应该只允许数字。

您需要使用小写d来匹配数字,而不是大写d。此外,要匹配整数,请在d like\d+之后使用+号

这是regex备忘单:


您可以使用该链接来模拟您的正则表达式:

尝试将
\D
设置为
\D+
为什么不使用input属性来只允许数字?
将只允许数字,范围从10到100I不能这样做,我们对这些输入有一些规则。我需要通过后端的aurelia decorator来做检查,如果我使用小写的d+,那么它将替换数字,我需要保留数字。此编号。替换(/\d/g');将免费替换数字。所以在我的例子中使用大写字母D是可以的。问题是,当我按下2个相同的字母时,我刚刚尝试过,它的输出是:12344,var res=“bbb123aa44”。replace(new RegExp(/\D+/g),”;是的,因为您使用大写字母D,而不是您建议的小写字母。用D可以,但我想我发现了重复字母的问题。我试图返回parseFloat(result),现在它按预期工作。