Regex-将用户输入限制为0-128

Regex - limit user input to 0-128

本文关键字:0-128 输入 用户 Regex-      更新时间:2023-09-26

如何编写一个regex,将用户输入限制在0-128?

我一直在尝试'd{1,3},但这允许比0-128范围更匹配。

感谢

您可以使用以下正则表达式:

/'b([0-9]{1,2}|1[01][0-9]|12[0-8])'b/

使用此实用程序

不包括128

您可以使用以下正则表达式来完成此操作:

^0?'d{1,2}|1([0-1]'d|2[0-7])$

你或多或少地把它按等级划分。

第一:

0?'d{1,2}

捕获直到(包括)99的所有值,可选地具有前导零(因此接受064)。

接下来,您将捕获1[0-1]'d。这些是值100119。这是因为最后一个数字没有限制。

最后你有了12[0-7],前两位是固定的,你可以使用120127

其中128

如果也允许128,则使用:

^0?'d{1,2}|1([0-1]'d|2[0-8])$

不允许前导零

您可以使用:

^'d|[1-9]'d|1([0-1]'d|2[0-8])$

单词边界

在这里,我添加了^$,使字符串以数字开头和结尾。否则,您可以按照@anubhava的建议使用单词边界'b。尽管有一个可能更好的用途:

'b(0?'d{1,2}|1([0-1]'d|2[0-7]))'b
'b(0?'d{1,2}|1([0-1]'d|2[0-8]))'b
'b('d|[1-9]'d|1([0-1]'d|2[0-8]))'b

Regex是错误的作业工具。

<input type="number" min="0" max="128" />

完成。

0-128将为:^(?:'d|[1-9]'d|1[0-1]'d|12[0-8])$

^
(?:
     'd
  |  [1-9] 'd
  |  1 [0-1] 'd
  |  12 [0-8]
)
$