我需要一个正则表达式,它需要一个最小值和一个最大值来确定有效的输入,我希望最大值和最小值是动态的。
我一直试图得到这个使用此链接https://stackoverflow.com/a/13473595/1866676但无法得到它的工作。有人能告诉我怎么做吗。
假设我想做一个html5输入框,我希望它只接收从100到1999的数字
像这样的正则表达式是什么样子的?
我需要一个正则表达式,它需要一个最小值和一个最大值来确定有效的输入,我希望最大值和最小值是动态的。
我一直试图得到这个使用此链接https://stackoverflow.com/a/13473595/1866676但无法得到它的工作。有人能告诉我怎么做吗。
假设我想做一个html5输入框,我希望它只接收从100到1999的数字
像这样的正则表达式是什么样子的?
3条答案
按热度按时间flmtquvp1#
首先,虽然可以做到这一点,但我认为如果有一种更简单的方法来选择一个数字范围,如
<input type="number" min="1" max="100">
,这种方法将是首选。话虽如此,下面是您请求的正则表达式的工作方式:
在这里,让我们选择一个任意数1234到2345
https://regex101.com/r/pP8rQ7/4
基本上,中间系列的结束总是需要一个可以达到9 * 的直线范围,除非 * 我们正在处理的是1的位置,如果它不能,你必须每次我们有一个不能从0开始的值时都向中间向上构建它,然后一旦我们达到一个不能以9结束的值,就提前打破并将其设置在下一个条件中。
注意这个模式,每个地方都凝固了。还要记住,当处理从低到高的地方,可选的运营商?应该使用。
它有点复杂,但它的地方几乎不可能设计一个自定义范围与一点思想。
如果您更具体,我们可以制作一个确切的示例,但通常是这样做的:
beginning-range|middle-range|end-range
在某些情况下,你应该只需要开始或结束范围,比如最小值或最大值不是以9结尾。?表示后面的范围是可选的。(例如,在第一种情况下,它让我们既有单数字又有双数字。所以100 - 1999其实很简单因为有很多9和0
https://regex101.com/r/pP8rQ7/1
注意:单个值不需要范围[n],我只是为了可读性而添加它们。
编辑:有一个新的regex范围生成器:https://3widgets.com/
zaqlnxep2#
基本上,你不能。
对于每个数值范围,都存在一个匹配该范围内的数字的正则表达式,因此可以编写代码来生成这样的正则表达式。但是这样的正则表达式并不是简单地重新格式化范围结束。
然而,与简单地使用数值方法检查数字的代码相比,这样的代码将需要巨大的努力和复杂性来编写。
j9per5c43#
与HTML 5简单地把范围输入...
使用regex:
因此,如果您需要动态地创建正则表达式,这是可能的,但有点棘手和复杂