繁体   English   中英

C#正则表达式问题:只允许字母,数字和点(2到20个字符)

[英]c# Regex question: only letters, numbers and a dot (2 to 20 chars) allowed

我正在用我的正则表达式搏斗。 我只想在用户名中只允许使用字母和数字以及一个点和2到20个字符,我想到了这样的内容

[0-9a-zA-Z] {2,20}

但是21个字符也是可以的,那不是我想要的

我建议您进行两项检查-一种检查长度,另一种检查内容,这是基于您可能只希望名称中包含一个点而不是任何数量的点这一事实。 我假设像usernameuser.name这样的username是唯一允许的格式。

这应该获取内容(但也可以使用下划线):

^\w+(\.\w+)?$

如果您不想使用下划线,则可以使用[0-9a-zA-Z]+代替\\w+ 为说明起见,它将匹配任何包含一个或多个单词字符,紧跟0或1的点后跟一个或多个单词字符的字符串。 它也必须匹配字符串的开头和结尾,即,字符串中不允许其他字符。

然后,您只需要通过简单的长度检查即可获得长度。

^[0-9a-zA-Z\.]{2,20}$

请尝试^[\\w\\.]{2,20}$

您需要使用字符串的开头和结尾( ^$ ),并转义.

^[0-9a-zA-Z\.]{2,20}$

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM