我正在尝试在 JavaScript 中创建匹配 1-100 之间的数字并包含两位小数的正则表达式。需要包含在正则表达式中的示例数字:
1
1.1
1.15
0.5
100
100.00
需要排除的数字示例:
101
100.01
100.1
55.999
这是我目前的正则表达式:
^(?:100(?:\.00?)?|\d?\d(?:\.\d\d?)?)$
否则,这有效,但我还需要包含两个数字,后跟小数或 100 后跟小数,如下所示:
14.
9.
100.
这是因为每次在输入字段中按下按钮时我都会运行正则表达式检查,即使当前正则表达式允许像 0.5 这样的数字,我也无法输入它,因为 0. 是不允许的。
您将需要在此处使用两个单独的正则表达式,一个用于实时输入验证(正是您在问题中描述的内容,它将让您输入允许的值),另一个用于最终的“提交时”验证(将检查整个输入字符串的有效性)。否则,您将无法输入0.5
类似的值。
实时输入验证的正则表达式是:
/^(?:100(?:\.0?0?)?|\d\d?(?:\.\d?\d?)?)$/
请参阅此正则表达式演示。注意如何?
量词做模式可选,尤其是\d
和0
之后\.
的图案。
以0.01
to开头的数字最终验证的正则表达式100
是
/^(?!0*(?:\.0*)?$)(?:100(?:\.00?)?|\d?\d?(?:\.\d\d?)?)$/
请参阅此正则表达式演示。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句