我从stackoverflow获取了这个表达式 - /^\d+(\.\d{0,9})?$/
。
它可以处理以下内容:
2
23
23.
25.3
25.4334
0.44
但在 .23
上失败了。是否可以将其添加到上述表达式中,或者使用某种方法来处理它们所有?
我从stackoverflow获取了这个表达式 - /^\d+(\.\d{0,9})?$/
。
它可以处理以下内容:
2
23
23.
25.3
25.4334
0.44
但在 .23
上失败了。是否可以将其添加到上述表达式中,或者使用某种方法来处理它们所有?
这段代码可以捕获你提出的所有情况,包括 .23
限制小数点后位数为9位
var isDecimal = string.match( /^(\d+\.?\d{0,9}|\.\d{1,9})$/ );
没有小数限制:
var isDecimal = string.match( /^(\d+\.?\d*|\.\d+)$/ );
3.141592653589793238462643383279502884197169399375105820974
;~) - KooiInc\d+\.?\d{0,9}
组非常消耗资源。如果输入以大量数字开头,则在决定哪些数字应该被\d+
使用,哪些数字属于\d{0,9}
时,可能会有很多回溯。 - Justin Morgan/^(\d+\.?\d*|\.\d+)$/.test(2.-1)
- KooiInc/^[+-]?(?=.?\d)\d*(\.\d{0,9})?$/
分解一下:
[+-]? # Optional plus/minus sign (drop this part if you don't want to allow negatives)
(?=.?\d) # Must have at least one numeral (not an empty string or just `.`)
\d* # Optional integer part of any length
(\.\d{0,9}) # Optional decimal part of up to 9 digits
(?=.?\d)
确保至少有一个数字存在。因此这个数字可以有整数部分、小数部分或者两者都有,但不能都没有。23.
。个人认为这不是一个有效的数字,但这取决于你。如果你改变了对它的看法,那么模式将变得更简单 (演示):/^[+-]?\d*\.?\d{1,9}$/
尝试这个表达式:
^\d*\.?\d*$