Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.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 测试数字是否符合xxx.xx模式_Javascript_Regex - Fatal编程技术网

Javascript 测试数字是否符合xxx.xx模式

Javascript 测试数字是否符合xxx.xx模式,javascript,regex,Javascript,Regex,我正在尝试为字段编写验证,正则表达式似乎是正确的解决方案。但我似乎不能正确理解语法。以下是基本规则 必须是肯定的 小数点前最多3位 小数点后最多2位 只有在后面有数字时,才会出现小数 不需要在小数点前加前导数字 这是我想到的,但它似乎不起作用,但我承认正则表达式不是我的专长 ^[0-9]{0,3}?(\.)[0-9]{0,2}$|$ 您的?位置不正确{a,b}?将匹配a和b之间可能的最小金额。您可能想要: ^([0-9]{0,3})(\.[0-9]{1,2})$^[0-9]{0,3}(\.[0

我正在尝试为字段编写验证,正则表达式似乎是正确的解决方案。但我似乎不能正确理解语法。以下是基本规则

  • 必须是肯定的
  • 小数点前最多3位
  • 小数点后最多2位
  • 只有在后面有数字时,才会出现小数
  • 不需要在小数点前加前导数字
  • 这是我想到的,但它似乎不起作用,但我承认正则表达式不是我的专长

    ^[0-9]{0,3}?(\.)[0-9]{0,2}$|$
    

    您的
    位置不正确<代码>{a,b}?将匹配
    a
    b
    之间可能的最小金额。您可能想要:

    ^([0-9]{0,3})(\.[0-9]{1,2})$
    ^[0-9]{0,3}(\.[0-9]{1,2})$

    这个应该做你想做的

    使用此正则表达式:

    ^(\d{0,3}|\d{0,3}\.\d{1,2})$
    

    这将符合您的要求

    您所说的“不工作”到底是什么意思。误报、误报或不完全工作(例如异常)[0-9]{0,3}表示数字0到3次。如果我没有弄错的话,根本不需要
    :)@J0HN,是的,但正如OP所说,
    .12
    是允许的,所以第一部分应该是optional@sshashank124我认为J0HN的观点是它已经是“可选的”
    “”。匹配(/[0-9]{0,3}/);//[“”]
    是否有任何数字零乘以句点一两等于
    .12
    ?:)@J0HN,我非常抱歉。你说得对。我知道你知道。是我的错。谢谢你
    {1,3}
    在第一个选项中,否则你也会像另一个答案一样匹配一个空字符串。@devnull你是对的,先生,但我只是按照op写的:
    小数点前最多3位
    最多可以取零,我假设一个数字只包含小数部分。当然,OP会知道得更清楚。