56

我搜索了很多,找不到这个 RegExp 的解决方案(我不得不说我在 Reg. Expressions 方面不是很有经验)。

Regex = ^[1-9]?[0-9]{1}$|^100$

我想测试一个1 到 100 之间的数字,不包括 0

4

13 回答 13

106

尝试:

^[1-9][0-9]?$|^100$

工作小提琴

编辑:如果你想匹配 00001, 00000099 试试

^0*(?:[1-9][0-9]?|100)$

小提琴

于 2012-11-20T12:51:12.880 回答
15

对于从 1 到 100 且前面没有 0 的整数,请尝试:

^[1-9]$|^[1-9][0-9]$|^(100)$

对于从 0 到 100 且前面没有 0 的整数,请尝试:

^[0-9]$|^[1-9][0-9]$|^(100)$

问候

于 2018-01-17T10:44:39.670 回答
10

试试看,这样会更有效.. 1. 对于 00 - 99.99 范围内的数字(包括小数)

^([0-9]{1,2}){1}(\.[0-9]{1,2})?$ 

工作小提琴链接

https://regex101.com/r/d1Kdw5/1/

2.对于1-100(含)范围内不带0的数字。

(?:\b|-)([1-9]{1,2}[0]?|100)\b

工作小提琴链接

http://regex101.com/r/mN1iT5/6

于 2014-08-14T10:24:20.970 回答
4

这是非常简单的正则表达式,可以理解(已验证,前面没有 0)

介于 0 到 100 之间(在此处尝试):

^(0|[1-9][0-9]?|100)$

介于 1 到 100 之间(在此处尝试):

^([1-9][0-9]?|100)$
于 2019-07-22T08:00:02.117 回答
3

如果一个人假设他真的需要正则表达式——这在许多情况下是完全合理的——问题是需要指定特定的正则表达式种类。例如:

egrep '^(100|[1-9]|[1-9][0-9])$'
grep -E '^(100|[1-9]|[1-9][0-9])$'

如果 (...|...) 替代语法可用,则工作正常。在其他情况下,它们会像 \(...\|...\) 一样被反斜杠

于 2012-11-20T12:57:27.507 回答
3

有很多选择如何为此编写正则表达式模式

  • ^(?:(?!0)\d{1,2}|100)$
  • ^(?:[1-9]\d?|100)$
  • ^(?!0)(?=100$|..$|.$)\d+$
于 2012-11-20T12:58:24.937 回答
1

我用这个角度 6

试试这个。

^([0-9]\.[0-9]{1}|[0-9]\.[0-9]{2}|\.[0-9]{2}|[1-9][0-9]\.[0-9]{1}|[1-9][0-9]\.[0-9]{2}|[0-9][0-9]|[1-9][0-9]\.[0-9]{2})$|^([0-9]|[0-9][0-9]|[0-99])$|^100$

它验证 0.00 - 100。有两位小数。

希望这会有所帮助

<input matInput [(ngModel)]="commission" type="number" max="100" min="0" name="rateInput" pattern="^(\.[0-9]{2}|[0-9]\.[0-9]{2}|[0-9][0-9]|[1-9][0-9]\.[0-9]{2})$|^([0-9]|[0-9][0-9]|[0-99])$|^100$" required #rateInput2="ngModel"><span>%</span><br>

数字应介于 0 到 100 之间

于 2020-03-24T09:41:08.143 回答
0

带小数点的 0 到 100 的正则表达式。

^100(\.[0]{1,2})?|([0-9]|[1-9][0-9])(\.[0-9]{1,2})?$
于 2019-08-30T18:31:40.760 回答
0

只是为了提供最短的解决方案,这是我的:

^([1-9]\d?|100)$

工作小提琴

于 2019-09-08T08:06:00.677 回答
0

1 - 1000 前导 0

/^0*(?:[1-9][0-9][0-9]?|[1-9]|1000)$/;

它不应该接受0, 00, 000, 0000.

它应该接受1, 01, 001,0001

于 2019-11-19T06:34:09.807 回答
-1

这似乎是使用if语句的更好解决方案:

num = 55
if num <= 100 and num >= 1:
    print("OK")
else:
    print("NOPE")
于 2012-11-20T12:48:40.950 回答
-1

在 0 到 100 之间

/^(\d{1,2}|100)$/

或介于 1 到 100 之间

/^([1-9]{1,2}|100)$/
于 2018-02-02T17:34:08.380 回答
-5

这是非常简单的逻辑,所以不需要regx。

而是使用三元运算符

var num = 89;
var isValid = (num <=  100 && num > 0 ) ? true : false;

它会为你变魔术!!

于 2014-08-18T09:09:24.210 回答