-1

我需要验证一个字符串是否包含最少 6 个字符和最多 8 个字符,且不包含空格。字符串中可以使用任何字母数字字符。

我将 asp.net 与 C3 一起使用,为此我将使用正则表达式验证。

4

4 回答 4

3

正则表达式^\w{6,8}$应该做的工作:

  • ^- 字符串的开始
  • \w- 单词字符
    • {6,8}- 6 到 8 次
  • $- 字符串结束

正如 Ianzz 在评论中所说,您真的不应该限制用户可以用作密码的内容:

不要限制密码中允许的字符或最大长度;只检查最小长度。

于 2012-06-08T12:41:21.433 回答
1

这实际上是一个非常简单的匹配表达式。如果您的正则表达式引擎不支持间隔,您可能需要稍微调整一下。

/(?x)
  ^            # start of string
  [[:alnum:]]  # POSIX alphanumeric class
  {6,8}        # minimum 6 matches, maximum 8
  $            # end of string
/

这在 Ruby REPL 中对我有用。您的正则表达式引擎的语法可能会有所不同,但这应该会让您指向正确的方向。

于 2012-06-08T12:48:09.803 回答
0

由于您还没有展示任何已完成的工作,我将把这些部分给您,但您可以自己弄清楚它们是如何组合在一起的。

字母数字字符可以表示[a-zA-Z0-9]或通常也表示\w (编辑此部分,因为下面的正确评论,mea culpa)

句首用 ^ 标记,结尾用 $

6-8 的数量限定词在需要被明显数字替换的地方{[min],[max]}表示为这样[min][max]

根据正则表达式的类型,您可能还需要用边界将其括起来,约定通常有利于/您的正则表达式 /[regexp here]/

有了这些,您可以将您的表情拼凑在一起。玩得开心。:)

于 2012-06-08T12:43:41.043 回答
0

您没有指定您使用的是哪种语言,但在这种情况下应该无关紧要。

我假设 Javascript,所以那将是:

/^[a-z0-9]{6,8}$/i

//i 是忽略大小写。您还可以使用:

/^[a-zA-Z0-9]{6,8}$/
于 2012-06-08T12:42:51.357 回答