Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 正则表达式Asp.NETMVC_Regex_Asp.net Mvc - Fatal编程技术网

Regex 正则表达式Asp.NETMVC

Regex 正则表达式Asp.NETMVC,regex,asp.net-mvc,Regex,Asp.net Mvc,我试图获得一个用户名验证,其中以下文本是有效的 试验 测试2 Tes2 测试123 123测试 1234 测试单元56 test-6ty 但不是下面的 Tes(最小长度) Test@123(特别字符) 我在模型中添加了以下注释,但似乎对正确的文本也不起作用。继续获取错误消息 [RegularExpression(@"^[a-zA-Z0-9\-_]$", ErrorMessage = "Only alphanumeric, hyphen and underscores are allowe

我试图获得一个用户名验证,其中以下文本是有效的

  • 试验
  • 测试2
  • Tes2
  • 测试123
  • 123测试
  • 1234
  • 测试单元56
  • test-6ty
但不是下面的

  • Tes(最小长度)
  • Test@123(特别字符)
我在模型中添加了以下注释,但似乎对正确的文本也不起作用。继续获取错误消息

[RegularExpression(@"^[a-zA-Z0-9\-_]$", ErrorMessage = "Only alphanumeric, hyphen and underscores are allowed for User name.")]
[StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 4)]

从您的示例来看,此正则表达式似乎适合您:

@"^[a-zA-Z0-9_-]{4,10}$"

{4,10}
将输入的最小长度设置为
4
,将最大长度设置为
10
。无论您希望保持什么限制,都可以更改它。

您是说当您提交时,无论是“Tes”还是Test@123“?否错误消息只会显示一次正确的信息。哪一条错误消息?正则表达式错误消息”“用户名只允许字母数字、连字符和下划线。”您只允许使用1个字符-使用
^[a-zA-Z0-9\-\\-\*$
(或
^[a-zA-Z0-9\-\\\\\\\\\\\\\\\\\\-{4100}$
,按照anubhava的回答中的建议将这两个字符组合在一起