C# .Net 如何用逗号自动分隔文本框输入
C# .Net How to auto separate Textbox input with comma
我想在我的文本框中允许以下序列。
e.g.
09123456789
e.g.
09123456789,09123456789
e.g.
09123456789,09123456789,09506724016
输入应以 09
开头,然后是接下来的九个数字。
如果输入多于 11,则末尾应自动添加一个逗号,然后应以 09
重新开始,后跟接下来的九个数字。
我有这个正则表达式 ^(09)\d{9}
只接受第一个序列,但我不知道如何将整个序列应用到我的文本框中。
private void phone_number_TextChanged(object sender, EventArgs e) {
//validate the textbot to allow only the sequence.
}
您的正则表达式只接受第一个序列,因为它包含一个输入开始字符 ^
。如果您想检测到是时候添加逗号了,请改用 09\d{9}$
。也许你也可以为用户预填 09
如果您还想在条目不匹配时将背景颜色变为红色,请考虑检查文本框是否符合以下逻辑:
private Regex _phNum = new Regex(@"^09\d{9}$", RegexOptions.Compiled);
然后文本更改为:
tb.BackColor = tb.Text.Split(',').All(_phNum.IsMatch) ? Color.White : Color.Red;
我想在我的文本框中允许以下序列。
e.g.
09123456789
e.g.
09123456789,09123456789
e.g.
09123456789,09123456789,09506724016
输入应以 09
开头,然后是接下来的九个数字。
如果输入多于 11,则末尾应自动添加一个逗号,然后应以 09
重新开始,后跟接下来的九个数字。
我有这个正则表达式 ^(09)\d{9}
只接受第一个序列,但我不知道如何将整个序列应用到我的文本框中。
private void phone_number_TextChanged(object sender, EventArgs e) {
//validate the textbot to allow only the sequence.
}
您的正则表达式只接受第一个序列,因为它包含一个输入开始字符 ^
。如果您想检测到是时候添加逗号了,请改用 09\d{9}$
。也许你也可以为用户预填 09
如果您还想在条目不匹配时将背景颜色变为红色,请考虑检查文本框是否符合以下逻辑:
private Regex _phNum = new Regex(@"^09\d{9}$", RegexOptions.Compiled);
然后文本更改为:
tb.BackColor = tb.Text.Split(',').All(_phNum.IsMatch) ? Color.White : Color.Red;