以下案例的有效正则表达式是什么?

时间:2016-03-20 13:04:26

标签: javascript regex active-directory

我需要使用以下条件的有效字符串

  • 必须小于20
  • 不应包含任何此字符 “[] :; | = + *?<> / \,
  • 尾随。不允许但可以介于两者之间
  • 不允许有尾随空格

实际上,我想验证Active Directory的samAccountName。

我找到了this,但在使用javascript时无效。

1 个答案:

答案 0 :(得分:2)

这应该有效:

var re = /^[^"\[\]:;\|=\+\*\?<>\/\\. ][^"\[\]:;\|=\+\*\?<>\/\\\n\r\t]{0,17}[^"\[\]:;\|=\+\*\?<>\/\\ \n\r\t]$/;
var sourcestring = "source string to match with pattern";
var results = [];
var i = 0;
for (var matches = re.exec(sourcestring); matches != null; matches = re.exec(sourcestring)){
  results[i] = matches;
  for (var j=0; j<matches.length; j++) {
    alert("results["+i+"]["+j+"] = " + results[i][j]);
  }
  i++;
}

首先,它恰好匹配一个不在禁用组中的字符,而且不是&#39;#34; &#34;或&#34;。&#34;。然后它匹配0-17个字符,这些字符不在您的禁用组中。最后,它只匹配一个不在禁用组中的字符,而且不是&#39;#34; &#34;或&#34;。&#34;。

因此它匹配1-19个字符串中的字符串,该字符串符合允许的字符组,并且不具有任何空格或点。