如何在代码库C#ASP.NET中动态设置正则验证表达式
本文关键字:设置 动态 表达式 验证 NET 代码 C#ASP | 更新日期: 2023-09-27 18:21:55
我在验证TextBox1
的ascx
页面中有RegularExpressionValidator
。
<asp:RegularExpressionValidator ID ="RegularExpressionValidatorStateNumber" runat = "server" ControlToValidate="TextBox1"
ErrorMessage="Error message" Display ="Dynamic" ValidationExpression=""/>
我需要根据dropdownlist
的选择动态更改ValidationExpression
。
这里我在代码背后做什么:
protected void DropDlSelectedIndexChanged(object sender, EventArgs e)
{
string region = DropDl.SelectedItem.Text;
RegularExpressionValidatorStateNumber.ValidationExpression = GetRegex(region);
}
返回正则表达式的函数GetRegex(region)
工作正常。但验证不起作用。插入错误数据时,验证器不会显示错误消息。
为什么验证不起作用?或者如何动态设置验证表达式
将错误消息显示为ErrorMessage,而不是Text。文本=";不正确的格式";
如果你能给它上色,那也很好:ForeColor=color.Red
使用MATCH
,它返回一个在输入字符串中具有所有匹配项的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);
}
ex0:10位手机号码rgvMobNumber.ValidationExpression="''d{"+iLength+"}";
ex1:rgvPostcode.ValidationExpression=@"^[a-zA-Z0-9''s]{"+txtboxLength+",8}$";ex2rgvPostcode.ValidationExpression=@"^[''s''s]{"+最小长度+","+最大长度+"}$";