我需要符合以下条件的有效字符串
- 必须小于 20
- 不应包含任何此字符 "[ ] : ; | = + * ? < >/\,
- 尾随 .不允许,但可以介于两者之间
- 不允许尾随空格
实际上,我想验证 Active Directory 的 samAccountName。
我找到了this但与 javascript 一起使用时无效。
最佳答案
这应该有效:
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++;
}
一开始它只匹配一个不在禁止组中且不是“”或“.”的字符。然后它匹配不属于禁止组的 0-17 个字符。最后它精确匹配了一个不在禁止组中且不是“”或“.”的字符。
因此它匹配 1-19 个字符的字符串,该字符串符合允许的字符组并且没有跟踪空格或点。
关于javascript - 以下情况的有效正则表达式是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36114040/