如何在codebehind C#ASP.NET中动态设置正则验证表达式

如何在codebehind C#ASP.NET中动态设置正则验证表达式,c#,asp.net,regex,C#,Asp.net,Regex,我在ascx页面中有RegularExpressionValidator,用于验证TextBox1 <asp:RegularExpressionValidator ID ="RegularExpressionValidatorStateNumber" runat = "server" ControlToValidate="TextBox1" ErrorMessage="Error message" Display ="Dynamic" ValidationExpression=""/&g

我在
ascx
页面中有
RegularExpressionValidator
,用于验证
TextBox1

<asp:RegularExpressionValidator ID ="RegularExpressionValidatorStateNumber" runat = "server" ControlToValidate="TextBox1" 
ErrorMessage="Error message" Display ="Dynamic" ValidationExpression=""/>
返回正则表达式的函数
GetRegex(region)
工作正常。 但验证不起作用。当插入错误数据时,验证程序不会显示错误消息


为什么验证不起作用?或者如何动态设置验证表达式?

使用
MATCH
返回一个包含输入字符串中所有匹配项的匹配对象。当输入文本中存在多个匹配项时,这非常有用。以下代码导致多个匹配:

 string region = DropDl.SelectedItem.Text; // @"^([\w]+) ([\w]+)$";
 string yourText="abcdxyz"

Match m = Regex.Match(yourText, region , RegexOptions.CultureInvariant);

foreach (Group g in m.Groups)
{
    Console.WriteLine(g.Value);
}

将错误消息显示为文本,而不是错误消息。 Text=“格式不正确”


如果你给它上色也很好:ForeColor=color.Red

ex0:10位手机号码 rgvMobNumber.ValidationExpression=“\d{”+iLength+“}”

例1: rgvPostcode.ValidationExpression=@“^[a-zA-Z0-9\s]{“+txtboxLength+”,8}$”; 例2
rgvPostcode.ValidationExpression=@“^[\s\s]{”+MinLength+,“+MaxLength+”}$”

我的问题中的正则表达式部分工作正常。My
RegularExpressionValidator
不显示错误消息。
 string region = DropDl.SelectedItem.Text; // @"^([\w]+) ([\w]+)$";
 string yourText="abcdxyz"

Match m = Regex.Match(yourText, region , RegexOptions.CultureInvariant);

foreach (Group g in m.Groups)
{
    Console.WriteLine(g.Value);
}