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 正确数值的验证_Javascript_Regex - Fatal编程技术网

Javascript 正确数值的验证

Javascript 正确数值的验证,javascript,regex,Javascript,Regex,正则表达式/^-?\d*(\.\d+)$/对负整数和正整数以及十进制值进行正确的验证。但我希望将正则表达式扩展一点,以解决以下问题: 该值可以为0,但不应为-0。仅当它是0.1之类的浮点值时,才应支持负值 任何数字都不应以前导零开头,例如整数0本身或以0.1开头的十进制值除外。但是不应该有任何像00或00.01这样的值 空值的验证 这样做的目的是确保单个正则表达式执行完整的验证,而不是执行多个检查。我认为这应该可以: /^(0 |-?(0.\d+[1-9]\d*(\.?(\d+))$/ 深受伊尔

正则表达式
/^-?\d*(\.\d+)$/
对负整数和正整数以及十进制值进行正确的验证。但我希望将正则表达式扩展一点,以解决以下问题:

  • 该值可以为0,但不应为-0。仅当它是0.1之类的浮点值时,才应支持负值
  • 任何数字都不应以前导零开头,例如整数0本身或以0.1开头的十进制值除外。但是不应该有任何像00或00.01这样的值
  • 空值的验证

  • 这样做的目的是确保单个正则表达式执行完整的验证,而不是执行多个检查。

    我认为这应该可以:

    /^(0 |-?(0.\d+[1-9]\d*(\.?(\d+))$/
    

    深受伊尔米隆影响回答:

    ^(0|-?(0\.\d+|[1-9]\d*(\.\d+)?))$
    

    您想禁止负整数值,我说的对吗?>我们的想法是确保单个正则表达式执行完整的验证,而不是执行多个检查。这是个坏主意。几个简单的检查比一个巨大的正则表达式更清晰、更可靠。@alexeyten:OGHaza给出的正则表达式正是我想要的。修复了,没有注意到你已经回答了。谢谢你的信任:)
    ^(0|-?(0\.\d+|[1-9]\d*(\.\d+)?))$