Regex用于具有最低和最高边界EXTjs的数字范围



我想验证输入的值是否是一个数字范围,并检查EXTjs中的第一个数字是否低于第二个数字

我使用这个正则表达式:/d+-d+?$/但我不知道检查第一个数字是否低于第二个

这是不是你应该这样做!但是我想让我的大脑散个步,所以我开始思考如何做到这一点,并说明用regex做这件事是多么愚蠢。

第一个数字最多只能有两位数

^(d-[1-9]d+|1d-[2-9]d+|2d-[3-9]d+|3d-[4-9]d+|4d-[5-9]d+|5d-[6-9]d+|6d-[7-9]d+|7d-[8-9]d+|8d-9d+|0-d|1-[2-9]|2-[3-9]|3-[4-9]|4-[5-9]|5-[6-9]|6-[7-9]|7-[8-9]|8-9|d0-dd|d1-d[2-9]|d2-d[3-9]|d3-d[4-9]|d4-d[5-9]|d5-d[6-9]|d6-d[7-9]|d7-d[8-9]|d8-d9)$

请参阅regex101。

你开始明白为什么这不是正确的方法了吗?

无论如何,它分为三个部分:

  1. 测试左边的十位数字与右边更高的十位数字(或更多)
  2. 测试个位数(左低于右)
  3. 如果两个都是相同的十位,测试个位数对彼此

注意!它是手写的,没有经过测试,所以它可能包含错误可能可以进一步优化。

对于个位数是可行的:

^(0-d|1-[2-9]|2-[3-9]|3-[4-9]|4-[5-9]|5-[6-9]|6-[7-9]|7-[8-9]|8-9)$

相关内容

  • 没有找到相关文章

最新更新