ç"·$%&/()=?
などの一部の文字に一致させるために正規表現を使用しています。
Web ページで正規表現をテストしています
http://www.softlion.com/webTools/RegExpTest/default.aspx
動作していますが、MVC のモデルで正規表現を使用すると動作せず、常にエラー メッセージが表示されます。
C# で使用される命令は次のとおりです。
[RegularExpression(@"[ç\"·$%&/()=?]$", ErrorMessage="some message")]
ç\"·$%&/()=?]$ は使用できない文字です
問題が解決しない
次のように書くと、常にエラーメッセージが表示されます:(ABCDEF
私にとっては正しい文字です)またはABCDçEF=GHIJ
(間違っています)
モデルでは、RegularExpression をカスタム属性のように変更しました。私が持っているモデルのプロパティで:
[CaracteresNoPermitidosAttribute(ErrorMessage="test 123")] パブリック文字列 RazonSocial { get; 設定; }
属性クラスは次のとおりです。
public class CaracteresNoPermitidosAttribute : RegularExpressionAttribute
{
public CaracteresNoPermitidosAttribute() : base(GetRegex())
{ }
private static string GetRegex()
{
// I take the data from the table to get the disallowed characters
var lista = (List<Caracterko>) new CaracterkoProxy().ObtenerTodos();
// I transform the list to string
var str = string.Join("", from x in lista where x.Activo select x.Caracter.ToString());
return @"(?![" + str + "])$";
}
}
ティムが提供した例を正規表現として使用しました