我有一个文本框,它的要求是5个数字字符后跟3个字母,将匹配在下拉列表中选择的内容。这是我检查它的方法:
protected void ddlLegalEntity_SelectedIndexChanged(object sender, EventArgs e)
{
if (ddlLegalEntity.SelectedItem.Text == "FID")
{
RegularExpressionValidator1.ValidationExpression = "^[0-9]{5}(FID)$";
}
else if (ddlLegalEntity.SelectedItem.Text == "FLM")
{
RegularExpressionValidator1.ValidationExpression = "^[0-9]{5}(FLM)$";
}
else if (ddlLegalEntity.SelectedItem.Text == "FOF")
{
RegularExpressionValidator1.ValidationExpression = "^[0-9]{5}(FOF)$";
}
然后它继续其他几个如果......
因此,如果在ddlLegalEntity中选择选项FLM,则文本框必须等于五个数字,后跟FLM。
比如..。
13423FLM
56543FLM
这段代码运行良好,但我觉得一定有一种更简单的方法来编写它。也许我错了,这是最简单的方法,但我只是好奇。
发布于 2016-06-18 20:02:28
可能是这样的:
protected void ddlLegalEntity_SelectedIndexChanged(object sender, EventArgs e)
{
RegularExpressionValidator1.ValidationExpression = "^[0-9]{5}("+ddlLegalEntity.SelectedItem.Text+")$";
}
更好地使用string.Format( string,params)来实现此目的;
private static readonly string validationRegEx= "^[0-9]\{5\}({0})$";
String.Format(validationRegEx, ddlLegalEntity.SelectedItem.Text);
https://stackoverflow.com/questions/37901116
复制