Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检查小数点前的4个数字和小数点后的1个数字_Javascript_Regex - Fatal编程技术网

Javascript 检查小数点前的4个数字和小数点后的1个数字

Javascript 检查小数点前的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

我有一个输入数字字段,它应该允许在小数点前最多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.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)?$