javascript正则表达式小数类型
假设你要阅读并了解什么,能阅读。假设只需要结果,直接跳转到这篇文章的结尾。
有使用前需求javascript正则表达式匹配小数类型,后来,他们已经写是不完全正确的识别。
后来在网上找了很多,甚至包含一些老外的纯英文论坛什么的。发现都是错的。都不够全面。
常见错误:
1. /^-?\d+\.\d+$/ http://blog.csdn.net/xxd851116/article/details/4352011
随便一看就知道,假设前面带+则错误。假设没有小数点则错误,假设00.123也不错报等等
2./^[0-9]*[.][0-9]+$/ http://social.msdn.microsoft.com/Forums/en-US/1ffd9265-eafa-4897-b803-39194f35df5d/regular-expression-for-a-float-in-javascript?forum=jscript
与上一个差点儿相同
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所有匹配,(好像没必要的)
因此。完美匹配小数类型。
版权声明:本文博客原创文章,博客,未经同意,不得转载。