如何检查用户输入以获得正确的格式

时间:2010-06-09 16:51:13

标签: c# regex winforms

这是我到目前为止所提出的

private void CheckFormatting()
{
    StringReader objReaderf = new StringReader(txtInput.Text);
    List<String> formatTextList = new List<String>();

     do
     {
         formatTextList.Add(objReaderf.ReadLine());
     } 
     while (objReaderf.Peek() != -1);

     objReaderf.Close();
     for (int i = 0; i < formatTextList.Count; i++)
     {

     } 
}

它的目的是检查用户是否以这种格式输入了他们的信息Gxx:xx:xx:xx JGxx其中“x”可以是任何整数。

如您所见,用户将其数据输入到多行文本框中。然后,我将该数据输入列表中。下一部分是我被困的地方。我创建一个for循环逐行遍历列表,但我想我还需要逐个字符地遍历每一行。我该怎么做呢?或者有更快的方法吗?

提前致谢

4 个答案:

答案 0 :(得分:1)

正则表达式是快速完成的方法。

答案 1 :(得分:1)

使用正则表达式 在你的情况下,G \ d \ d:\ d \ d:\ d \ d:\ d \ d:JG \ d \ d应该工作(没有测试) 使用using System.Text.RegularExpressions命名空间

答案 2 :(得分:1)

最佳做法是在输入数据时验证用户输入,并明确输入设计中的格式。

您可以为每个数字部分添加一系列文本框,用以下内容分隔:,然后验证每个文本框的数值。

我猜这是一个asp.net页面? 如果是,那么你可以在客户端和服务器上使用asp.net验证器。

<asp:textbox id="textbox1" runat="server"/>
<asp:RegularExpressionValidator id="valRegEx" runat="server"
    ControlToValidate="textbox1"
    ValidationExpression="[0-9]*"
    ErrorMessage="* Your entry is not a valid number."
    display="dynamic">*
</asp:RegularExpressionValidator>

答案 3 :(得分:1)

试试这个。

    if (!System.Text.RegularExpressions.Regex.IsMatch("your_text", "G[0-9]{2}:[0-9]{2}:[0-9]{2}:[0-9]{2} JG[0-9]{2}"))
    {
        //Error!
    }