验证javascript十进制数

Cli*_*ote 6 javascript regex jquery

我正在使用以下正则表达式来验证我的javascript文件中的数字:

var valid = (val.match(/^\d+$/));
Run Code Online (Sandbox Code Playgroud)

它适用于100,200等整数,但是对于像1.44,4.11等这样的东西,它返回false.如何更改它,以便接受带小数的数字?

Sen*_*ful 27

var valid = (val.match(/^\d+(?:\.\d+)?$/));
Run Code Online (Sandbox Code Playgroud)

火柴:

 1  : yes
 1.2: yes
-1.2: no
+1.2: no
  .2: no
 1. : no
Run Code Online (Sandbox Code Playgroud)
var valid = (val.match(/^-?\d+(?:\.\d+)?$/));
Run Code Online (Sandbox Code Playgroud)

火柴:

 1  : yes
 1.2: yes
-1.2: yes
+1.2: no
  .2: no
 1. : no
Run Code Online (Sandbox Code Playgroud)
 var valid = (val.match(/^[-+]?\d+(?:\.\d+)?$/));
Run Code Online (Sandbox Code Playgroud)

火柴:

 1  : yes
 1.2: yes
-1.2: yes
+1.2: yes
  .2: no
 1. : no
Run Code Online (Sandbox Code Playgroud)
var valid = (val.match(/^[-+]?(?:\d*\.?\d+$/));
Run Code Online (Sandbox Code Playgroud)

火柴:

 1  : yes
 1.2: yes
-1.2: yes
+1.2: yes
  .2: yes
 1. : no
Run Code Online (Sandbox Code Playgroud)
var valid = (val.match(/^[-+]?(?:\d+\.?\d*|\.\d+)$/));
Run Code Online (Sandbox Code Playgroud)

火柴:

 1  : yes
 1.2: yes
-1.2: yes
+1.2: yes
  .2: yes
 1. : yes
Run Code Online (Sandbox Code Playgroud)