Jquery 浮点值的正则表达式

Jquery 浮点值的正则表达式,jquery,regex,floating-point,alphanumeric,Jquery,Regex,Floating Point,Alphanumeric,我希望我的文本框只有浮点值,并过滤掉任何符号和字母,我找到的最接近的解决方案是: jQuery(".sow-items .discovery_repeat input.hours").live("keyup", function(e) { $(this).val($(this).val().replace(/[^\d]/, '')); }); 但它也过滤掉小数点。如何从上述筛选器或任何新建议中排除小数?尝试以下操作: jQuery(".sow-items .

我希望我的文本框只有浮点值,并过滤掉任何符号和字母,我找到的最接近的解决方案是:

jQuery(".sow-items .discovery_repeat input.hours").live("keyup", function(e) {       
    $(this).val($(this).val().replace(/[^\d]/, ''));       
});
但它也过滤掉小数点。如何从上述筛选器或任何新建议中排除小数?

尝试以下操作:

jQuery(".sow-items .discovery_repeat input.hours").live("keyup", function(e) {       
    $(this).val($(this).val().replace(/[^\d.]/g, ''));       
});
试试这个:

jQuery(".sow-items .discovery_repeat input.hours").live("keyup", function(e) {       
    $(this).val($(this).val().replace(/[^\d.]/g, ''));       
});

/\b[-+]?[0-9]*\.?[0-9]+\b/g
/^[-+]?[0-9]*\.?[0-9]+$/
应该可以,除非你想允许像“1.4E-15”这样的数字在里面


对于这种不寻常的情况有一些建议。

/\b[-+]?[0-9]*\.?[0-9]+\b/g
/^[-+]?[0-9]*\.?[0-9]+$/
应该可以做到这一点,除非您想在其中允许像“1.4E-15”这样的数字

jQuery(".sow-items .discovery_repeat input.hours").live("keyup", function(e) {   
    var newVal = $(this).val().replace(/[^\d.]/, '').split(".");
    if ( newVal.length>2 ) newVal.length = 2; newVal.join("."); 
    $(this).val(newVal);       
});
对那个不寻常的案子有一些建议

jQuery(".sow-items .discovery_repeat input.hours").live("keyup", function(e) {   
    var newVal = $(this).val().replace(/[^\d.]/, '').split(".");
    if ( newVal.length>2 ) newVal.length = 2; newVal.join("."); 
    $(this).val(newVal);       
});
@戴夫·牛顿:只有一个


@Dave Newton:只有一个

您需要匹配非数字或非点,点需要转义

jQuery(".sow-items .discovery_repeat input.hours").live("keyup", function(e) {       
    $(this).val($(this).val().replace(/[^\d]|[^\.]/, ''));       
});

您需要匹配非数字或非点,点需要转义

jQuery(".sow-items .discovery_repeat input.hours").live("keyup", function(e) {       
    $(this).val($(this).val().replace(/[^\d]|[^\.]/, ''));       
});

与其过滤掉非浮点的内容,不如确保它是一个有效的浮点?您还需要说明是否允许使用指数表示法。@DaveNewton无指数表示法与其过滤掉非浮点的内容,不如确保它是一个有效的浮点?您还需要说明是否允许使用指数表示法。@DaveNewton无指数表示法应该是
/[^\d\.]/
转义
?@DaveNewton在您的右侧,它可能会导致包含多个小数,您能建议一个更好的解决方案吗。感谢在字符类中使用点时不需要转义。它应该是
/[^\d\.]/
转义
?@davenewt在您的右侧,它可能会导致包含多个小数,您能建议更好的解决方案吗。感谢在字符类内部使用点时不需要转义。在字符类内部不需要转义。如果为True,则不需要转义。如果为True,则不需要转义。如果为True,则不需要转义。