【发布时间】:2021-08-26 09:34:26
【问题描述】:
我目前正在使用此正则表达式:^\d{1,3}(\.\d{1,2})?$,正如此处问题中提供的那样:
Regex for up to 3 whole numbers and 2 decimals
这在正则表达式测试器中运行良好,并且与模式匹配。 我遇到的问题是在验证输入并防止除 3 位和 2 位小数之外的任何内容时,该模式不允许在 2 位小数之前使用 3 位和 1 位小数,例如
234.34 是允许的
234. 不允许
我目前无法在小数点后输入任何内容,因为它是基于模式被阻止的。我想在三位数字后输入一个小数,它与小数点后的 2 位数字匹配,并且不匹配小于 1,例如
allowed
1
2.
2.3
2.38
22.
22.2
22.38
234.
234.2
234.34
not allowed
0.2
0.23
00.23
000.23
234.255
【问题讨论】:
-
试试这个:
^[1-9](?:\d{1,2})?\.?(?:\d{1,2})?$Demo -
^[1-9]\d{0,2}(?:\.\d{0,2})?$这样的东西会起作用。但是@apokryfos 下面的评论似乎非常适合您的情况! -
如果您的意思是要在键入时进行验证,则不要阻止无效输入,而是向用户提供当前输入无效但仍允许他们继续输入的反馈。只防止提交无效输入
-
没想到是这样的,非常感谢这是最好的解决方案。
标签: javascript regex typescript