Firefox Javascript:从类型为“的输入中删除非数字字符;编号";-FF发行

Firefox Javascript:从类型为“的输入中删除非数字字符;编号";-FF发行,javascript,regex,replace,numeric,Javascript,Regex,Replace,Numeric,任务看起来很简单。我必须在firefox中的keyup上删除“number”类型的输入字段中的非数字字符 守则: $("#field").on("keyup", function() { regex = /[\\D]+/; $(this).val( $(this).val().replace(regex, '') ); }); 不幸的是,一旦非数字字符进入该字段,其全部内容就会被空字符串替换 例如: 234d=清空>应为234 解决方案(此处因为问题已结束): 这个例子很有效。我发现它与字

任务看起来很简单。我必须在firefox中的keyup上删除“number”类型的输入字段中的非数字字符

守则:

$("#field").on("keyup", function() {
 regex = /[\\D]+/;
 $(this).val( $(this).val().replace(regex, '') );
});
不幸的是,一旦非数字字符进入该字段,其全部内容就会被空字符串替换

例如:

234d=清空>应为234

解决方案(此处因为问题已结束):


这个例子很有效。我发现它与字段类型有关。如果“number”类型字段中的输入包含非数字字符,firefox会显示输入,但不会将其存储在输入对象中。只要我使用文本输入,一切正常。这似乎是Firefox的问题

我认为这个问题不是重复的,因为它似乎涉及到Firefox的输入字段类型为“number”的问题
var val='234d'。替换(/[^0-9]/g',);
控制台日志(val)
var val='234d'。替换(/[^0-9]/g',);
控制台日志(val)
试试这句话:

myString = myString.replace(/\D/g,'');
参考:

试试这句话:

myString = myString.replace(/\D/g,'');
参考:
regex=/\D+/
/[\\D]+/
匹配
\s
Ds
var regex=/\D+//g
的组合以删除所有非数字字符<代码>$(this.val)(函数(i,val){return val.replace(/\D+/g',);})
/[\\D]+/匹配
\
s和
D
s。如果使用构造函数表示法,
new RegExp(“[\\D]+”,“g”)
可以工作,但在regex文本中,您只需要一个带有速记字符类/特殊字符的
\
。好的,谢谢。我也试过/^[^0-9]+/g和/[^0-9]/g。也尝试了new RegExp(),但字段总是被清空。奇怪但肯定是我的错。
regex=/\D+/
/[\\D]+/
匹配
\s
Ds
var regex=/\D+//g
的组合以删除所有非数字字符<代码>$(this.val)(函数(i,val){return val.replace(/\D+/g',);})
/[\\D]+/匹配
\
s和
D
s。如果使用构造函数表示法,
new RegExp(“[\\D]+”,“g”)
可以工作,但在regex文本中,您只需要一个带有速记字符类/特殊字符的
\
。好的,谢谢。我也试过/^[^0-9]+/g和/[^0-9]/g。也尝试了new RegExp(),但字段总是被清空。奇怪,但肯定是我的错。这个例子很有效。我发现它与字段类型有关。如果“number”类型字段中的输入包含非数字字符,firefox会显示输入,但不会将其存储在输入对象中。只要我使用文本输入,一切正常。所以我想这是firefox的问题。这个例子很有效。我发现它与字段类型有关。如果“number”类型字段中的输入包含非数字字符,firefox会显示输入,但不会将其存储在输入对象中。只要我使用文本输入,一切正常。所以我想这是firefox的问题。