Javascript 检查小数点前的4个数字和小数点后的1个数字
我有一个输入数字字段,它应该允许在小数点前最多4个数字,小数点后最多1个数字,或者最多6个没有小数点的数字。 例如,有效的1.2、113.5、1234.5、456789 我在按键上使用了这个RegExJavascript 检查小数点前的4个数字和小数点后的1个数字,javascript,regex,Javascript,Regex,我有一个输入数字字段,它应该允许在小数点前最多4个数字,小数点后最多1个数字,或者最多6个没有小数点的数字。 例如,有效的1.2、113.5、1234.5、456789 我在按键上使用了这个RegEx^\d{0,4}.?(\.\d{0,1})$。它工作正常,但只有在显示数字(如113.55)后才会显示false。我怎样才能解决这个问题 我的按键功能: 按键功能(e、DivID){ if(e.which!=8&&e.which!=0&&e.which!=13&&e.which!=46&&e.whi
^\d{0,4}.?(\.\d{0,1})$
。它工作正常,但只有在显示数字(如113.55)后才会显示false。我怎样才能解决这个问题
我的按键功能:
按键功能(e、DivID){
if(e.which!=8&&e.which!=0&&e.which!=13&&e.which!=46&&e.which<48 | e.which>57)){
返回false;
}
var val=j$('[id$='+DivID+']')。val();
if(DivID=='proximitycpercentage')
{
var x=event.which | | event.keyCode;
如果(val.indexOf('.')>=0&&e.which==46)
返回false;
否则如果(e.which==46&&val.length==3)
返回false;
如果(val.indexOf('.')==0)
val='0'+val;
如果(如!=46)
{
strval=val+String.fromCharCode(x);
var re=/^((.| 0 |[1-9]\d?)(\.\d{1})100(\.0?)$/;
如果(!重新测试(标准))
返回false;
}
}
如果(val.indexOf('.')>0,则为else
{
如果(e.which==46)
返回false;
var arra=val.split('.');
var decval=arra[1];
var-val=arra[0];
如果(值长度>6)
返回false;
如果(decval.length>0)
返回false;
}
否则,如果(例如,哪个!=46)
{
如果(值长度>5)
返回false;
}
}
注意:这也匹配.2
和12345
和'
(空字符串)。根据你的问题,不清楚你是否想排除这些
说明:
^
开行(?:
启动一个“非捕获组”\d{0,4}
介于0和4位之间\?
零或一个文字点(\d)
捕获一位数字。(是否要捕获此数字?)|
或\d{0,6}
零位或六位数字)
关闭我们的非捕获组(编号2)$
结束这行.2
和12345
和'
(空字符串)。根据你的问题,不清楚你是否想排除这些
说明:
^
开行(?:
启动一个“非捕获组”\d{0,4}
介于0和4位之间\?
零或一个文字点(\d)
捕获一位数字。(是否要捕获此数字?)|
或\d{0,6}
零位或六位数字)
关闭我们的非捕获组(编号2)$
结束这行^\d{0,4}([.\d]\d)?$
如果您不想匹配5位数字,请使用以避免出现这种情况
^(?!\d{5}$)\d{0,4}([.\d]\d)?$
使用以下正则表达式
^\d{0,4}([.\d]\d)?$
如果您不想匹配5位数字,请使用以避免出现这种情况
^(?!\d{5}$)\d{0,4}([.\d]\d)?$
使用两个regexp-
/^\d{0,4}[.]\d{0,1}$/
&/\d{6}/
?^\d{0,4}([.\d]\d)$
是否为有效值?那么4.
呢?您需要更精确地定义接受的模式。接受“1”吗?是否接受“123”?接受“.3”吗?还有,你到底想在按键上发生什么?是否要取消/忽略导致不匹配图案的按键?你能给我们看看你的按键操作代码吗?您是否考虑过在输入元素上使用模式
属性?接受的值为1,12123123445123456,0.1,1.1,12.1123.11234.1。文本字段不允许输入这些以外的内容。使用两个regexp-/^\d{0,4}[.]\d{0,1}$/
&/\d{6}/
?^\d{0,4}([.\d]\d)$
是否为有效值?那么4.
呢?您需要更精确地定义接受的模式。接受“1”吗?是否接受“123”?接受“.3”吗?还有,你到底想在按键上发生什么?是否要取消/忽略导致不匹配图案的按键?你能给我们看看你的按键操作代码吗?您是否考虑过在输入元素上使用模式
属性?接受的值为1,12123123445123456,0.1,1.1,12.1123.11234.1。文本字段不允许输入这些以外的内容。它还与12345
匹配!是的,我假设“或6个不带小数的数字”的意思是“最多6个小数”,但可能它们的意思是“正好6个”。如果是这样的话,只需将最后一个\d{0,6}
更改为\d{6}
。谢谢你的评论。你的假设是错误的。它与1234.
也匹配。它也与12345
匹配!是的,我假设“或6个不带小数的数字”的意思是“最多6个小数”,但可能它们的意思是“正好6个”。如果是这样的话,只需将最后一个\d{0,6}
更改为\d{6}
。谢谢你的评论。你的假设是错误的。它与1234.
也匹配。我想你的意思是\.
而不是[]
部分中的
。因此,它应该看起来像^\d{0,4}([\.\d]\d)$
如果包含使.4
和4.
无效的变体,则它与12345
+1匹配。
^(?!\d{5}$)\d{0,4}([.\d]\d)?$