4位数字前缀的实时输入验证,末尾可选8位数字

罗菲·法瑟罗曼(Rofi Fathurrohman)

这是我的以下正则表达式:

/^08(17|18|19|31|32|33|38|59|77|78)[0-9]{0,8}$/

如果我在输入字段中输入08将显示通知错误,我想要的是如果我输入0817将显示成功,如果我输入08我希望不出现通知错误。也许解决方案是在正则表达式中使用不捕获组。但是该怎么做呢?

这是我想要的前缀验证:

0817, 0818, 0819, 0831, 0832, 0833, 0838, 0859, 0877, 0878
威克多·斯特里比尤(WiktorStribiżew)

您想对包含4位数字前缀和0至8位任意数字的代码实施实时输入验证

关键是您不能使子模式连续可选,您需要使用嵌套的可选组,要求在左手数字之前出现左手数字。

模式变得很不整洁,但这是使其起作用的唯一方法:

^0(?:8(?:1(?:[789][0-9]{0,8})?|3(?:[1238][0-9]{0,8})?|5(?:9[0-9]{0,8})?|7(?:[78][0-9]{0,8})?)?)?$

正则表达式演示

详细资料

  • ^ -字符串开始
  • 0 -强制性的 0
  • (?:
    • 8 -必须的 8
      • (?:
      • 1-必须1紧接着...
      • (?: -符合以下条件的可选组:
        • [789]- 7,或8,或9后跟
        • [0-9]{0,8}- 0〜8的任何
      • )?-(位于后面的可选组的末尾1
      • | - 或者
      • 3(?:[1238][0-9]{0,8})? -(与上述类似)
      • | - 或者
      • 5(?:9[0-9]{0,8})? -(与上述类似)
      • | - 或者
      • 7(?:[78][0-9]{0,8})? -(与上述类似)
    • )?-匹配和之后的所有可选组的末尾8
  • )?-第一部分之后的整个部分0可选的
  • $ -字符串结尾。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Excel 2010-如何在数字前加上“ 0”使8位数字变为9位数字

来自分类Dev

Laravel字段验证:允许8位或16位数字

来自分类Dev

解密4位数字

来自分类Dev

分割4位数字

来自分类Dev

同步SMS验证的6位数字(而不是4位数字)

来自分类Dev

在数字前加零以使其成为4位数字

来自分类Dev

输入少于4位数字时阻止输入键

来自分类Dev

屏蔽输入文字,仅输入4位数字

来自分类Dev

输入 0 - 9 的四位数字并生成四 (4) 位数字的新组合,

来自分类Dev

要求输入10位数字

来自分类Dev

正则表达式匹配4位数字前的所有内容

来自分类Dev

为什么365是8位数字?

来自分类Dev

Delphi需要4位数字的年份

来自分类Dev

Python检查4位数字

来自分类Dev

以4或6开头的10位数字

来自分类Dev

Delphi需要4位数字的年份

来自分类Dev

比较Excel中的4位数字

来自分类Dev

4位数字的除法器

来自分类Dev

匹配8位数字或1-8位数字和一个星号

来自分类Dev

Java将8位数字转换为10位

来自分类Dev

检查前4位数字是否等于后4位数字

来自分类Dev

检查前4位数字是否等于后4位数字

来自分类Dev

生成3位数字

来自分类Dev

仅使用8位数字将两个32位数字相乘

来自分类Dev

将32位数字转换为四个8位数字

来自分类Dev

divs按价格排序最多4位数字,但使用5位数字不会排序

来自分类Dev

从10位数字中获取所有可能的连续4位数字

来自分类Dev

PHP-应该使用什么正则表达式来验证输入为空还是4位数字?

来自分类Dev

位操作和> 32位数字?