脚本巴巴 www.jiaoben88.com

javascript正则表达式小数类型

发布时间:2014-08-23 17:44:53编辑:脚本巴巴
  曾经有需求用javascript正则表达式匹配小数类型,后来自己之前写的也是不能完全正确识别。
  后来在网上找了许多,甚至包括一些老外的纯英文论坛什么的,发现都是错的,都不够全面。
  常见错误:
  1. /^-?\d+\.\d+$/
  随便一看就知道,如果前面带+则错误,如果没有小数点则错误,如果00.123也不错报等等
  2./^[0-9]*[.][0-9]+$/
  与上一个差不多
  3. /^\d*+(\.\d+)?$/与上一个同一个页面
  看起来有水平了许多,比如考虑到小数点及小数点后的内容可有可没有(即整数也可以,不仅仅是纯小数)
  但是小数点前,00.123 也是可以的
  不行。
  4. /^[+-]?\d+(\.\d+)?$/
  也是更好了,比如考虑到了前面的正负号,等,但是同样的小数点前,00.123 也是可以的
  不找更多了,大概也就是这样。
  -----------
  下面是我测试多次的一个写法:
var regExp = /^[+-]?(0|([1-9]\d*))(\.\d+)?$/g;
var b = regExp.test(a);
alert(b);

  解释:
  ^$分别匹配字符串的首尾
  [+-]? 表示字符串开头可以有 +或-或没有符号,且有的话只能有一个
  0|[1-9]\d* 这是小数点前的整数部分,表示可以为 (一个0 ) 或者 (为一个第一位不为0的整数,但第一位以后可以为0)
  (\.\d+)? 是指小数点及小数点后面部分,不出现或出现一次
  g全部匹配,(好像不是必需的)
  因此,完美匹配小数类型。
上一篇:Js放到HTML文件head和body中有什么区别
下一篇:js滚轮换切屏代码

相关文章