正则表达式匹配低级登录名

时间:2014-02-18 14:28:32

标签: regex windows

我想验证用户输入的低级登录名。有什么想法吗?

以下是给出的低级登录名称格式:

http://msdn.microsoft.com/en-us/library/windows/desktop/aa380525%28v=vs.85%29.aspx

1 个答案:

答案 0 :(得分:4)

MSDN所述,它由 NetBIOS域名\用户帐户名组成。

NetBIOS domain name有一些限制:

  

NetBIOS域名可以包含除“不允许的字符”部分中列出的扩展字符之外的所有字母数字字符。名称可以包含句点,但名称不能以句点开头。

     

最小名称长度为1个字符。最大名称长度为15个字符。

可以用[a-zA-Z0-9][a-zA-Z0-9.]{0,14}

表示

User account name也有一些限制:

  

登录名最多可包含104个字符。但是,使用长度超过64个字符的登录名是不切实际的。

     

登录名称不能包含某些字符。无效字符为“/ \ [] :; | =,+ *?<>

     

登录名可以包含所有其他特殊字符,包括空格,句点,短划线和下划线。但在帐户名称中使用空格通常不是一个好主意。

可以用[^"/\\\[\]:;|=,+*?<>]{1,104}

表示

因为它没有说明最小长度我在那里放了1个字符。我没有遇到允许空用户帐户名称的系统。

最后,它一起创建[a-zA-Z0-9][a-zA-Z0-9.]{0,14}\\[^"/\\\[\]:;|=,+*?<>]{1,104}以匹配 NetBIOS域名\用户帐户名


然而,这些都是技术限制,在现实生活中很少使用。例如,强烈建议不要使用NetBIOS域名中的.以及用户帐户名中的space。用户帐户的常见最大长度为64而不是104,而在较旧的Windows上,如2000,甚至是20。

更现实可能是[a-zA-Z0-9]{1,15}\\[a-zA-Z0-9._-]{1,64},但这取决于你。