RegEx:如何匹配所有大于49的数字?

Max*_*axx 52 javascript regex

我对正则表达式有点新,并且正在编写需要使用正则表达式的数量字段的验证.

如何匹配大于或等于50的所有数字?

我试过了

[5-9][0-9]+

但这只匹配50-99.有没有一种简单的方法来匹配所有可能超过49的数字?(仅使用整数)

pim*_*vdb 87

第一个数字必须在范围内的事实5-9仅适用于两位数的情况.因此,在2位数的情况下检查,并允许更多数字直接:

^([5-9]\d|\d{3,})$
Run Code Online (Sandbox Code Playgroud)

此正则表达式具有开始/结束锚点,以确保您正在检查所有数字,并且字符串实际上代表一个数字.的|装置"或",所以任一[5-9]\d或任何数量的具有3个或多个数字.\d只是一个捷径[0-9].

编辑:禁止数字如下001:

^([5-9]\d|[1-9]\d{2,})$
Run Code Online (Sandbox Code Playgroud)

在3位或更多位的情况下,这迫使第一个数字不为零.

  • @pimvdb:您使用 `^` 和 `$` 意味着整个字符串都是数字。这就引出了一个问题,为什么需要正则表达式? (2认同)

小智 21

我知道已经发布了一个很好的答案,但它不会允许前导零.我没有足够的声誉留下评论,所以......这是我的解决方案,允许前导零:

首先,我匹配数字50到99(可能的前导零):

0*[5-9]\d
Run Code Online (Sandbox Code Playgroud)

然后匹配100及以上的数字(也是前导零):

0*[1-9]\d{2,}
Run Code Online (Sandbox Code Playgroud)

将它们与"或"一起添加并将其包装起来以匹配整个句子:

^0*([1-9]\d{2,}|[5-9]\d)$
Run Code Online (Sandbox Code Playgroud)

而已!