【问题标题】:Html5 input patternHtml5 输入模式
【发布时间】:2015-10-06 12:50:03
【问题描述】:

我从一些在线生成器获得了这种模式.*?[a-z]([a-z])([a-z])([a-z]).*?(\s+)(\d+),但它不起作用。

我需要允许的模式:

“最少 3 个字符长度的字符串,下一个空格,下一个最少 1 个字符的整数” [abc 1] 或相同但顺序不同的“最少 1 个字符的整数,下一个空格,下一个最少 3 个字符长度的字符串” [3 gtf]。

谢谢。

【问题讨论】:

    标签: regex html html5-validation


    【解决方案1】:

    试试这个:

    \d+\s\w{3,}|\w{3,}\s\d+
    

    它要么匹配:

    1. 一个或多个数字 (\d+),后跟一个空格 (\s),后跟三个或更多单词字符 (\w{3,})(这是 [a-zA-Z0-9],您如果您愿意,可以将此部分替换为 [a-zA-Z]。
    2. 三个或更多单词字符(这是 [a-zA-Z0-9],如果您愿意,可以将此部分替换为 [a-zA-Z]),后跟一个空格,然后是一个或更多位数。

    Regex101

    【讨论】:

    • 不满足最少3个字符的要求
    【解决方案2】:

    下面的表达式应该符合你的描述:

    [a-z]{3,}\s\d+|\d+\s[a-z]{3,}
    

    一些注意事项:

    1. {3,} 构造允许您指定给定范围内的重复。一般来说,它是{min,max},但您可以省略 min 或(如这里) max 以获得一个开放式范围。您还可以通过指定单个数字来指定精确的重复次数,例如{99}.

    2. 表达式本质上是两个完整的表达式,交替切换。正则表达式不允许你说“正是这些事情,以任何顺序”。

    3. 我已经使用[a-z] 来匹配非数字部分中的字符,正如您在原始示例中所做的那样。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-17
      • 1970-01-01
      • 2012-03-09
      • 1970-01-01
      • 2013-07-05
      • 2013-01-23
      • 2019-11-04
      • 2014-07-14
      相关资源
      最近更新 更多