Loading [MathJax]/jax/input/TeX/config.js
社区首页 >问答首页 >数字之间的数字的正则表达式

数字之间的数字的正则表达式
EN

Stack Overflow用户
提问于 2016-06-08 10:48:32
回答 3查看 20.9K关注 0票数 6

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

我一直在尝试使用此链接https://stackoverflow.com/a/13473595/1866676来完成此操作

但不能让它工作。所以有人能让我知道怎么做吗?

-更新维克多Stribiż新请求

假设我想创建一个html5输入框,并且我希望它只接受从100到1999的数字

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-06-08 11:08:32

首先,虽然可以做到这一点,但我认为如果有一种更简单的方法来选择一个数字范围,比如<input type="number" min="1" max="100">,那么这种方法会更好。

话虽如此,以下是您所请求的正则表达式的工作方式:

代码语言:javascript
代码运行次数:0
复制
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

在这里,让我们选择一个从1234到2345的任意数字

代码语言:javascript
代码运行次数:0
复制
^[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]$

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

基本上,中间序列的结束总是需要是一个可以达到9的直线范围,除非我们处理的是1位,如果不能,每次我们有一个不能从0开始的值时,你必须将它向上构建到中间,然后一旦我们达到一个不能以9结束的值,就提前中断,并在下一个条件中设置它。

请注意其中的模式,因为每个地方都会固化。还请记住,当处理从较低位置到较高位置时,可选操作符?应该使用。

这有点复杂,但几乎不可能设计一个自定义的范围与一些想法。

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

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

代码语言:javascript
代码运行次数:0
复制
/^[1-9][0-9][0-9]$|^[1][0-9][0-9][0-9]$/

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

注意:单个值不需要范围n,我添加它们只是为了可读性。

编辑:发现有一个范围生成器。我不知道它有多可靠或稳定,但它乍一看看起来很好,尽管位于:http://gamon.webfactional.com/regexnumericrangegenerator/

票数 14
EN

Stack Overflow用户

发布于 2016-06-08 11:01:16

从本质上说,你不能。

对于每个数字范围,都存在一个与该范围内的数字匹配的正则表达式,因此可以编写代码来生成这样的正则表达式。但这样的正则表达式并不是简单地重新格式化范围结束。

然而,与简单地使用数字方法检查数字的代码相比,这样的代码需要花费大量的精力和复杂性来编写。

票数 3
EN

Stack Overflow用户

发布于 2016-06-08 11:30:57

在HTML5中,只需输入一个范围...

代码语言:javascript
代码运行次数:0
复制
<form>
  Quantity (between 100 and 1999):
  <input type="number" name="quantity" min="100" max="1999">
</form>

使用正则表达式:

代码语言:javascript
代码运行次数:0
复制
^([12345679])(\d)(\d)|^(1)(\d)(\d)(\d)

因此,如果您需要动态地创建正则表达式,这是可能的,但有一点棘手和复杂

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37700372

复制
相关文章
kotlin 判断数字_Kotlin程序显示范围之间的阿姆斯壮数字
An Armstrong number is a number such that the sum of the nth power of its digits is equal to the number itself, where n is the number of digits in the number (taken here to mean positive integer).
用户7886150
2021/04/28
1.2K0
python中的字符数字之间的转换函数
python中的字符数字之间的转换函数 int(x [,base ]) 将x转换为一个整数 long(x [,base ]) 将x转换为一个长整数 float(x ) 将x转换到一个浮点数 complex(real [,imag ]) 创建一个复数 str(x ) 将对象 x 转换为字符串 repr(x ) 将对象 x 转换为表达式字符串 eval(str )
用户1733462
2018/06/01
9150
模拟电源与数字电源之间的区别
模拟电源与数字电源是两种不同的电源类型,其核心区别在于电源控制方式和输出特性。本文将从这两方面对模拟电源和数字电源进行比较和分析。
河北稳控科技
2023/10/18
5250
模拟电源与数字电源之间的区别
JS只能输入数字,数字和字母等的正则表达式
1.只能输入英文   <input type="text" onkeyup="value=value.replace(/[^a-zA-Z]/g,'')"> 2.只能输入中文、英文、数字、@符号和.符号   <input type="text" onkeyup="value=value.replace(/[^a-za-z0-9u4e00-u9fa5@.]/g,'')"> 3.只能输入字母和汉字   <input onkeyup="value=value.replace(/[d]/g,'') "onbefore
磊哥
2018/05/08
18.7K0
如何批量添加中文和英文数字之间的空格?用正则表达式吧
但我们可能尚未养成这样的输入习惯,以至于要么全部没有空格,要么部分加了空格,部分没有。当然您可以不在乎这个文本规范。对于那些在意这个文本规范的人,想要规范格式,要么人工逐项修改,偶尔写写短文时这么操作貌似并不麻烦。但日积月累,这也将是一项不菲的时间开销。
刘娟娟PRESSone
2019/12/02
2.4K0
JavaScript 函数求1-100的数字之和,数字之间求最大值
JavaScript 使用关键字 function 定义函数。 函数可以通过声明定义,也可以是一个表达式。 JavaScript 函数求1-100的数字之和 <script> function getSum(){ var sum = 0; for(var i = 1; i<=100; i++ ) { sum += i; } console.log(sum); } getSum(); </script> 数字之间求最大值 <script type="text/
梦溪
2021/09/09
1.2K0
正则表达式 至少6位-字母,数字,下划线或者数字的正则表达式
  一、校验数字的表达式   数字:^[0-9]*$   n位的数字:^\d{n}$   至少n位的数字:^\d{n,}$   m-n位的数字:^\d{m,n}$   零和非零开头的数字:^(0|1-
宜轩
2022/12/29
3.7K0
C++ stringstream 实现字符与数字之间的转换
字符串转数字 #include<iostream> #include <sstream> #include <string> using namespace std; int main() { //字符转数字 string str1 = "2018219"; string str2 = "2018.219";//浮点数转换后的有效数为6位 int num1 = 0; double num2 = 0.0; stringstream s; //
Aidol
2020/07/23
9480
【c】打印数字之间添加符号
数字之间有符号,最后没有。如果是按照顺序的就不说了。 先看题 从这里可以看出输出的数字顺序不确定。 我目前的思路是将要打印的(无顺序)数存到一个(有顺序)数组里面。 如下代码: #include<stdio.h> #define num 5000 int main() { int a[num],b[num],t=0,c[num]={0}; int n,m; scanf("%d%d",&n,&m); for(int i=0;i<n;i++){ a[i]=-(i+1); } for(int
小唐同学.
2022/03/07
1.6K0
golang取两个数字之间的随机数
package main import ( "crypto/rand" "math/big" "fmt" ) func main(){ fmt.Println(RandInt64(100,3000)) } func RandInt64(min,max int64) int64{ maxBigInt:=big.NewInt(max) i,_:=rand.Int(rand.Reader,maxBigInt) if i.I
李海彬
2018/03/22
2.2K0
JS 正则表达式(数字、正则)
js校验的正则: 验证数字的正则表达式集  验证数字:^[0-9]*$  验证n位的数字:^\d{n}$  验证至少n位数字:^\d{n,}$  验证m-n位的数字:^\d{m,n}$  验证零和非零
凯哥Java
2022/12/16
9.8K0
常用的校验数字、字符、特殊需求的正则表达式
一、校验数字的表达式 1.数字:^[0-9]*$ 2.n位的数字:^\d{n}$ 3.至少n位的数字:^\d{n,}$ 4.m-n位的数字:^\d{m,n}$ 5.零和非零开头的数字:^(0|[1
菲宇
2022/12/02
1.7K0
常用的校验数字、字符、特殊需求的正则表达式
虚实之间01 | 什么是虚拟数字人?
著名科幻小说《三体》描述过这样一个场景:主角为了寻找超自然力量的线索,借助虚拟现实设备进入了一款游戏,他在虚拟世界中遇到的人物,不仅有人类的外形,能跟他流畅地对话,甚至还有人类的逻辑和情感。
GIAIAC
2022/06/16
1.1K0
虚实之间01 | 什么是虚拟数字人?
【Go】IP地址转换:数字与字符串之间的转换
IP 地址库中 IP 地址的保存格式一般有两种,一种是点分十进制形式(192.168.1.1),另一种是数字形式(3232235777),应用中,经常需要在这两种格式之间做转换。
thinkeridea
2019/11/04
5.9K0
数字的陷阱
Java中对数字的处理,如四舍五入,如加减乘除,貌似是一个很基础很简单的知识点,但是如果你没有对他进行充分了解,很容易掉进它的陷阱里。 1、浮点数运算 先来看一个对浮点数作运算的例子,请问会输出什么: System.out.println(4.015*100); 结果可能会让你大跌眼镜,不是401.5,而是401.49999999999994,这就要涉及到浮点数的一些知识点,Java中,浮点类型是依据IEEE754标准,IEEE754定义了32位和64位双精度两种浮点二进制小数标准,而采用二进制表示doub
java达人
2018/02/01
7910
js数字正则-JavaScript正则表达式
  实际上RegExp类的构造函数可以接受两个参数,除了本身需要匹配的模式字符串外,还可以定义指定额外处理方式的第二个参数。
宜轩
2022/12/29
5.6K0
基于keras的手写数字识别_数字识别
Flatten层: Flatten层用来将输入“压平”,即把多维的输入一维化,常用在从卷积层到全连接层的过渡,举例如下
全栈程序员站长
2022/10/05
1.8K0
丢失的数字
给定一个包含 [0, n] 中 n 个数的数组 nums ,找出 [0, n] 这个范围内没有出现在数组中的那个数。
_kyle
2020/12/25
9070
数字时代如何管理你的数字隐私
涉及到个人隐私问题,我无法保证读者不滥用,所以隐私信息收集就跳过了。我不可能教别人去搜集隐私啊,对吧?
Bess Croft
2021/07/23
9440
数字世界里的信任钥匙:数字身份
数字身份是打开数字世界里信任大门的钥匙,我们不能丢失对于它的掌管权利,就如同我们不能把钥匙交给陌生人保管一样。
ThoughtWorks
2021/04/16
4880
数字世界里的信任钥匙:数字身份

相似问题

正则表达式匹配数字之间的数字

34

python正则表达式得到数字和数字之间的段落

410

1-31之间的数字和数字之间的可选逗号的正则表达式

25

字母数字之间的正则表达式

13

数字介于两个数字之间的jQuery正则表达式^=

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档