你能用最少数量的某种类型的字母为 HTML 输入字段创建一个模式吗?

问题描述

我想为 HTML 输入字段创建一个模式,该模式需要至少包含 10 个数字,并且可能还有空格和加号,但这不是必需的。

数字和空格可以混合使用很重要。而且,整个字段总共只能有 17 个字符。

我不确定这是否可能。我开始做这样的事情:

pattern="[0-9+\s]{10,17}*"

但像这样,并不能保证至少有 10 个数字。

提前致谢!希望这个问题不存在,我看了但找不到。

解决方法

你可以使用

pattern="(?:[+\s]*\d){10,17}[+\s]*"

正则表达式匹配

  • (?:[+\s]*\d){10,17} - 十到十七次出现零个或多个 + 或空格,然后是一个数字
  • [+\s]* - 零个或多个 + 或空格。

请注意,该模式默认是锚定的(它用 ^(?:)$ 包裹),因此不允许其他任何内容。