[英]Regular expression Attribute that only allows alpha numeric characters
使用下面的表達式當我輸入“ 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-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
說明:
^
表示開始 $
表示結尾 *
匹配零個或多個字符 以我上面完成的方式添加*
和$
可以確保任何匹配都完全由零個或多個匹配[0-9A-Za-z]
字符組成。
因此,您的示例如下所示:
[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();
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.