我想验证用户输入的下级登录名。任何想法?
以下是给出的下级登录名格式:
http://msdn.microsoft.com/en-us/library/windows/desktop/aa380525%28v=vs.85%29.aspx
正如MSDN所说,它由NetBIOS 域名\用户帐户名组成。
NetBIOS 域名有一些限制:
NetBIOS 域名可以包含除“不允许的字符”部分中列出的扩展字符之外的所有字母数字字符。名称可以包含句点,但名称不能以句点开头。
名称最小长度为 1 个字符。名称最大长度为 15 个字符。
可以表示为[a-zA-Z0-9][a-zA-Z0-9.]{0,14}
用户帐户名也有一些限制:
登录名最多可包含 104 个字符。但是,使用长度超过 64 个字符的登录名是不切实际的。
登录名不能包含某些字符。无效字符为 " / \ [ ] : ; | = , + * ? < >
登录名可以包含所有其他特殊字符,包括空格、句点、破折号和下划线。但在帐户名中使用空格通常不是一个好主意。
这可以表示为[^"/\\\[\]:;|=,+*?<>]{1,104}
因为它没有提到最小长度,所以我在那里放了 1 个字符。我还没有遇到过允许空用户帐户名的系统。
最后,它一起创建[a-zA-Z0-9][a-zA-Z0-9.]{0,14}\\[^"/\\\[\]:;|=,+*?<>]{1,104}匹配NetBIOS 域名\用户帐户名。
然而这些都是技术限制,在现实生活中很少使用。例如, .在 NetBIOS 域名以及space用户帐户名称中,强烈建议不要使用域名。用户帐户的常见最大长度是 64,而不是 104,在 2000 等较旧的 Windows 上,它甚至是 20。
可能更现实[a-zA-Z0-9]{1,15}\\[a-zA-Z0-9._-]{1,64},但这取决于你。