【问题标题】:Regular expression to validate a specific pattern用于验证特定模式的正则表达式
【发布时间】:2016-11-15 01:01:49
【问题描述】:

我正在尝试创建具有以下限制的正则表达式

  1. 允许任何字符 '\w\W\s'(例如 rand123#!#@adfads)
  2. 只禁止数字(例如 12312312)
  3. 仅禁止使用非字母数字字符(例如 !@#$$#%#^%$^%)
  4. 字符数必须在 3 到 60 之间

按照this answer 的思路进行操作,但无法正常工作。

^(?=.{3,60}$)(?![\W_]*$)(?![0-9]*$)[\w\W\s]+$

【问题讨论】:

标签: regex validation


【解决方案1】:

注意\W 匹配\s,所以'\w\W\s' 可以简化为[\w\W]

您可以在开始时使用 2 个否定前瞻来强加两个“仅禁止”条件,如下所示:

^(?![\W_]+$)(?![0-9]+$)[\w\W]{3,60}$

regex demo

模式详情

  • ^ - 字符串开头
  • (?![\W_]+$) - 字符串不能由非字母数字字符组成
  • (?![0-9]+$) - 字符串不能只包含数字
  • [\w\W]{3,60} - 3 到 60 个任意字符
  • $ - 字符串结束。

【讨论】:

    猜你喜欢
    • 2020-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多