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

时间:2011-12-21 15:48:19

标签: javascript regex

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

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

我试过

[5-9][0-9]+

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

6 个答案:

答案 0 :(得分:75)

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

^([5-9]\d|\d{3,})$

此正则表达式具有开始/结束锚点,以确保您检查所有数字,并且字符串实际上代表一个数字。 |表示“或”,因此[5-9]\d或任何包含3位或更多位数的数字。 \d只是[0-9]的快捷方式。

修改:禁止001之类的数字:

^([5-9]\d|[1-9]\d{2,})$

在3位或更多位数的情况下,这会强制第一个数字不为零。

答案 1 :(得分:18)

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

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

0*[5-9]\d

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

0*[1-9]\d{2,}

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

^0*([1-9]\d{2,}|[5-9]\d)$

那就是它!

答案 2 :(得分:4)

尝试匹配50-99的条件组或三位或更多位的任何字符串:

var r = /^(?:[5-9]\d|\d{3,})$/

答案 3 :(得分:3)

Next matches全部大于或等于11100

^([1-9][1-9][1-9]\d{2}\d*|[1-9][2-9]\d{3}\d*|[2-9]\d{4}\d*|\d{6}\d*)$

For greater or equal 50

^([5-9]\d{1}\d*|\d{3}\d*)$

查看模式并修改为任意数字。 另外,为大数字找到一些递归的前向/后向运算符会很棒。

答案 4 :(得分:1)

试试这个正则表达式:

[5-9]\d+|\d{3,}

答案 5 :(得分:1)

我知道这很旧,但是这些表达式都不适合我(也许是因为我使用PHP)。以下表达式可以很好地验证数字是否大于49:

/([5-9][0-9])|([1-9]\d{3}\d*)/