这是我到目前为止所提出的
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循环逐行遍历列表,但我想我还需要逐个字符地遍历每一行。我该怎么做呢?或者有更快的方法吗?
提前致谢
答案 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!
}