【问题标题】:ASP.NET regular expression, restricting numbersASP.NET 正则表达式,限制数字
【发布时间】:2017-05-03 12:44:43
【问题描述】:

我的问题是,我必须编写正则表达式,这将禁止仅包含数字的字符串。现在我有:

@"^\D{3,30}$"

但它不会匹配 qwe2 之类的内容。所以,换句话说,我需要正则表达式,即:

  • 检查符号数量是否在 3 到 30 之间
  • 允许所有符号
  • 如果字符串仅由数字组成,则拒绝输入

例如qwe/{}21''@3 - 好; 123 - 不好; ab - 不好。

【问题讨论】:

  • 您需要明确指定条件。您希望每个符号都存在吗? ab 怎么样?
  • 您是否正在尝试创建密码验证器?那么您可能应该要求符号数量在 12 到 200 之间或更多。 30 是远远太短的最大数字,而 3 什么都不是——即使是现在 6 也太小了。 30 将阻止人们使用安全密码短语并强制他们使用不安全的短密码

标签: asp.net .net regex


【解决方案1】:

负前瞻^(?!\d+$) 会使输入仅由数字组成的匹配失败。其余的很明显:

^(?!\d+$).{3,30}$

演示:https://regex101.com/r/ACeHB7/1

【讨论】:

  • 可以肯定的是,它的工作方式类似于 - 如果 something on the left 不是数字 -> 字符串适合表达式?
  • 如果something on the right of the begin of the string 不是数字,则包含至少 3 个字符且最多 30 个字符的字符串将适合表达式。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-12
相关资源
最近更新 更多