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;