正则表达式未正确验证 4 种值类型的数字

regular expression not validating 4 value types of numbers correctly

本文关键字:类型 数字 验证 正则表达式      更新时间:2023-09-26

我正在尝试验证一个值,并且该值在我的表达式中不能有一个零,然后在它前面有一个数字,我目前拥有的表达式选择了值的所有数据类型,包括第一个不是我想要的,有人可以帮我。

05lb incorrect
0.2lb correct
1.2lb correct
2lb correct
/(0?[0-9]|'d+)(?:'.'d'lb|'lb)/

您可以使用负的前瞻断言在正则表达式上提供条件(值不能有零,然后前面有一个数字)。

^(?!0'd)'d+(?:'.'d+)?lb$

^(?!0'd)断言开头没有0和数字。

演示

> /^(?!0'd)'d+(?:'.'d+)?lb$/.test('05lb')
false
> /^(?!0'd)'d+(?:'.'d+)?lb$/.test('0.2lb')
true
> /^(?!0'd)'d+(?:'.'d+)?lb$/.test('1.2lb')
true
> /^(?!0'd)'d+(?:'.'d+)?lb$/.test('2lb')
true

有些点并不完全清楚(即:总是在最后是lb?点后最多1位数字?允许 1.lb 数字?),但你可以试试这个:

/^(?:0|[1-9]'d*)(?:'.'d)?lb$/