正则表达式之间的数字

DaC*_*aCh 0 regex between

我需要一个正则表达式,它需要一个最小和最大数字来确定有效输入,我希望最大值和最小值是动态的.

我一直在尝试使用此链接完成此操作 /sf/answers/943151681/

但无法让它发挥作用.所以有人可以让我知道如何做到这一点.

------WiktorStribiżew请求更新---------

假设我想制作一个html5输入框,而我希望它只能接收从100到1999的数字

我会像这样的正则表达式是什么样的?正则表达式本身,应该与应该使用它的代码有关,因为我将在android,iOS和网页上使用它

yos*_*row 8

以下是这种正则表达式的工作原理

ones: ^[0-9]$  // just set the numbers -- matches 0 to 9
tens: ^[1-3]?[0-9]$ //set max tens and max ones -- matches 0 to 39
tens where max does not end in 9 ^[1-2]?[0-9]$|^[3][0-4]$ // 0 to 34
only tens: ^[1][5-9]$|^[2-3][0-9]$|^[4][0-5]$ // 15 to 45
Run Code Online (Sandbox Code Playgroud)

在这里,我们选择任意数字1234到2345

^[1][2][3][4-9]$|
^[1][2][4-9][0-9]$|
^[1][3-9][0-9][0-9]$|
^[2][0-2][0-9][0-9]$|
^[2][3][0-3][0-9]$|
^[2][3][4][0-5]$
Run Code Online (Sandbox Code Playgroud)

https://regex101.com/r/pP8rQ7/4

基本上中间序列的结尾总是需要是一个可以达到9的直线范围,除非我们处理那些地方,如果它不能,你必须在每次我们有一个可以'的价值时向上建立它. t从0开始,然后一旦我们达到一个不能提前结束的值,并将其设置为下一个条件.

注意每个地方固化的模式.还要记住,在处理从较低位置到较高位置时,可选运算符?应该使用.

它有点复杂,但通过一点思考设计自定义范围几乎是不可能的.

如果你更具体,我们可以制作一个确切的例子,但这通常是如何完成的:beginning-range|middle-range|end-range 在某些情况下你应该只需要开始或结束范围,比如最小值或最大值不是以9结尾.意味着它之后的范围是可选的.(例如,在第一种情况下,它让我们同时拥有单数和双数.

因此,对于100 - 1999,它实际上非常简单,因为你有很多9和0

/^[1-9][0-9][0-9]$|^[1][0-9][0-9][0-9]$/
Run Code Online (Sandbox Code Playgroud)

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

注意:单个值不需要范围[n]我只是添加了它们以便于阅读.