【问题标题】:Can you create a pattern for HTML input fields with a minimum number of letters of a certain type?您可以为特定类型的最少字母数的 HTML 输入字段创建一个模式吗?
【发布时间】:2021-07-20 14:12:31
【问题描述】:

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

数字和空格可以混合使用,这一点很重要。另外,整个字段总共只能有 17 个字符。

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

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

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

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

【问题讨论】:

  • 你可能想要pattern="(?:[+\s]*\d){10,17}[+\s]*"。如果您需要匹配更具体的模式,您应该分享需求。
  • 值得一提的是,您仍然应该清理服务器代码中的输入,因为绕过这些模式过滤器很简单
  • 感谢你们俩@WiktorStribiżew,您的回答完美无缺
  • @Martin 是的,我正在这样做,但感谢您的提示 :)

标签: html input input-field


【解决方案1】:

你可以使用

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

正则表达式匹配

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-05
    • 2011-07-02
    • 1970-01-01
    • 2016-02-26
    相关资源
    最近更新 更多