繁体   English   中英

正则表达式匹配浮点数模式

[英]Regular expression to match float number pattern

这是我想要匹配的模式。 我已经开始这样的事情^\\d{1,}.^\\d{1,}$不确定完成此操作。

  • X
  • XX
  • x不能为零(不允许0或0.00,但可以是1.02或0.123)
  • 所有x的长度(包括小数)(如果有的话)不应超过11位
  • 最低1 x是必需的
  • 只允许1位小数
  • 这是必填字段

注意:我将x称为数字

我想在HTML5 Pattern attribute和JavaScript string.match("")使用此RegEx

清晰度:我的意思是允许“1.02”,但不允许“0”或“0.0”

这就是你需要的吗?

^(?!^0$)(?=.{1,11}$)(([1-9][0-9]*|0)(\.[0-9]*[1-9])?)$

我不认为正则表达式是验证数字的好方法,但如果你想...

r = /^(?=.*[1-9])(?=.{1,11}$)([1-9][0-9]*|0)(\.[0-9]+)?$/
"1 1.2 0.2 100.2 00.1 0.00 0 234890324908324908342".split(" ").forEach(function(x) {
    console.log(x, r.test(x)) })

1 true
1.2 true
0.2 true
100.2 true
00.1 false
0.00 false
0 false
234890324908324908342 false

这可能更准确 - 不接受尾随零,如123.45600

r = /^(?=.*[1-9])(?=.{1,11}$)([1-9][0-9]*|0)(\.[0-9]*[1-9])?$/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM