多行文本框正则表达式验证器

时间:2014-05-30 09:33:50

标签: c# asp.net regex

我现在有这个正则表达式,适用于单行文本框中的单个输入:

ValidationExpression="[A-Z]{2}[0-9]{5}"

我想要相同的验证,但对于多行文本框,每行有1个正则表达式格式。

例如。通

AB12345
CD67890
EF12345

例如。失败

AB12345 EF12345
CD67890

尝试了其他问题中给出的大多数例子,但似乎没有任何效果。

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

您可以使用

将值拆分为数组
List<string> myValues = inputString.Split(Environment.NewLine);

foreach(string row in myValues)
 // do validation

这样您仍然可以自行验证每一行,并且可以返回错误的行以供用户修复。

您也可以在自定义模型属性的自定义验证属性中执行此操作。 Custom validation attribute

答案 1 :(得分:0)

这可能会帮助您满足您的要求:

         String subjectString = "A12345 EF12345 C67890 AB12345 CD67890";
        string[] ssize = subjectString.Split(null);
        try
        {

            for (int i = 0; i <= ssize.Length; i++)
            {
                Regex regexObj = new Regex("[A-Z]{2}[0-9]{5}", RegexOptions.IgnoreCase);
                Match matchResults = regexObj.Match(ssize[i]);
                if (matchResults.Success)
                {
                    label.Text += " ";
                    label.Text += matchResults.Value.ToString();
                }
            }

        }