验证javascript十进制数

验证javascript十进制数,javascript,jquery,regex,Javascript,Jquery,Regex,我使用以下regexp验证javascript文件中的数字: var valid = (val.match(/^\d+$/)); 它适用于100、200等整数,但对于1.44、4.11等整数,它返回false。我如何更改它,使带小数点的数字也被接受 var valid = (val.match(/^\d+(?:\.\d+)?$/)); 匹配项: 1 : yes 1.2: yes -1.2: no +1.2: no .2: no 1. : no 1 : yes 1.2: y

我使用以下regexp验证javascript文件中的数字:

var valid = (val.match(/^\d+$/));
它适用于100、200等整数,但对于1.44、4.11等整数,它返回false。我如何更改它,使带小数点的数字也被接受

var valid = (val.match(/^\d+(?:\.\d+)?$/));
匹配项:

 1  : yes
 1.2: yes
-1.2: no
+1.2: no
  .2: no
 1. : no
 1  : yes
 1.2: yes
-1.2: yes
+1.2: no
  .2: no
 1. : no
 1  : yes
 1.2: yes
-1.2: yes
+1.2: yes
  .2: no
 1. : no
 1  : yes
 1.2: yes
-1.2: yes
+1.2: yes
  .2: yes
 1. : no
 1  : yes
 1.2: yes
-1.2: yes
+1.2: yes
  .2: yes
 1. : yes

匹配项:

 1  : yes
 1.2: yes
-1.2: no
+1.2: no
  .2: no
 1. : no
 1  : yes
 1.2: yes
-1.2: yes
+1.2: no
  .2: no
 1. : no
 1  : yes
 1.2: yes
-1.2: yes
+1.2: yes
  .2: no
 1. : no
 1  : yes
 1.2: yes
-1.2: yes
+1.2: yes
  .2: yes
 1. : no
 1  : yes
 1.2: yes
-1.2: yes
+1.2: yes
  .2: yes
 1. : yes

匹配项:

 1  : yes
 1.2: yes
-1.2: no
+1.2: no
  .2: no
 1. : no
 1  : yes
 1.2: yes
-1.2: yes
+1.2: no
  .2: no
 1. : no
 1  : yes
 1.2: yes
-1.2: yes
+1.2: yes
  .2: no
 1. : no
 1  : yes
 1.2: yes
-1.2: yes
+1.2: yes
  .2: yes
 1. : no
 1  : yes
 1.2: yes
-1.2: yes
+1.2: yes
  .2: yes
 1. : yes

匹配项:

 1  : yes
 1.2: yes
-1.2: no
+1.2: no
  .2: no
 1. : no
 1  : yes
 1.2: yes
-1.2: yes
+1.2: no
  .2: no
 1. : no
 1  : yes
 1.2: yes
-1.2: yes
+1.2: yes
  .2: no
 1. : no
 1  : yes
 1.2: yes
-1.2: yes
+1.2: yes
  .2: yes
 1. : no
 1  : yes
 1.2: yes
-1.2: yes
+1.2: yes
  .2: yes
 1. : yes

匹配项:

 1  : yes
 1.2: yes
-1.2: no
+1.2: no
  .2: no
 1. : no
 1  : yes
 1.2: yes
-1.2: yes
+1.2: no
  .2: no
 1. : no
 1  : yes
 1.2: yes
-1.2: yes
+1.2: yes
  .2: no
 1. : no
 1  : yes
 1.2: yes
-1.2: yes
+1.2: yes
  .2: yes
 1. : no
 1  : yes
 1.2: yes
-1.2: yes
+1.2: yes
  .2: yes
 1. : yes
试试这个:

^[-+]?\d+(\.\d+)?$

如果你想接受小数(包括isNaN),对我来说,isNaN似乎是一个更好的解决方案

> isNaN('1')
false
> isNaN('1a')
true
> isNaN('1.')
false
> isNaN('1.00')
false
> isNaN('1.03')
false
> isNaN('1.03a')
true
> isNaN('1.03.0')
true
!isNaN(text)&&parseFloat(text)=text

“4.”从技术上讲是一个有效的十进制数,但此正则表达式与之不匹配。您应该将组中的
\d+
数字设为可选数字。