使用下面的表达式当我输入" asdf"时会显示错误消息。或"%#$%#$"
我只想允许使用字母数字字符。我的语法下面有什么问题?
[Required(ErrorMessage = ("Only alpha numeric characters are allowed.")), Display(Name = "Program Codes"), RegularExpression(@"^[a-zA-Z0-9]")]
public string ProgramCode
{
get
{
return _programCode;
}
set
{
if (OnPropertyChanging("ProgramCode", _programCode, value))
{
var oldValue = _programCode;
_programCode = value;
OnPropertyChanged("ProgramCode", oldValue, value);
OnProgramCodeChanged();
}
}
}
答案 0 :(得分:1)
你的正则表达式几乎是正确的。它将匹配第一个字符与[0-9A-Za-z]
匹配的任何字符串。缺少两件事;请参阅示例和以下说明:
脚本:
using System;
using System.Text.RegularExpressions;
var regex = new Regex(@"^[a-zA-Z0-9]*$");
Console.WriteLine(regex.IsMatch("asdf")); // True
Console.WriteLine(regex.IsMatch("")); // True
Console.WriteLine(regex.IsMatch("123abcABC")); // True
Console.WriteLine(regex.IsMatch("&%&")); // False
说明:
^
表示开头$
表示结束 *
匹配零个或多个字符 以我上面的方式添加*
和$
可确保任何和所有匹配都包含完全零个或多个匹配{{1}的字符}。
所以你的例子看起来像这样:
[0-9A-Za-z]