[英]Regular Expression in MVC of c# to match characters
我正在使用正则表达式来匹配某些字符,例如ç"·$%&/()=?
等。
我正在测试网页中的正则表达式
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; 组; }
Attribute类是:
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 + "])$";
}
}
我使用了Tim给出的示例作为正则表达式
您的正则表达式只寻找一个字符,然后寻找字符串的结尾。 如果只想允许该集中的字符,则应使用- [ç\\"·$%&/()=?]+$
类的表达式
由于您已明确表示不想在字符串中使用这些字符,因此请使用负数前瞻:
(?![ç\\"·$%&/()=?])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.