【问题标题】:C# .Net How to auto separate Textbox input with commaC# .Net 如何用逗号自动分隔文本框输入
【发布时间】:2021-09-16 03:13:03
【问题描述】:

我想在我的文本框上允许以下序列。

e.g. 
    09123456789
e.g.
    09123456789,09123456789
e.g.
    09123456789,09123456789,09506724016

输入应以09 开头,后跟接下来的九个数字。 如果输入超过 11 个,则应在末尾自动添加一个逗号,然后应以 09 重新开始,后跟接下来的 9 个数字。

我有这个正则表达式 ^(09)\\d{9},它只接受第一个序列,但我不知道如何将整个序列应用到我的文本框中。

private void phone_number_TextChanged(object sender, EventArgs e) {
   //validate the textbot to allow only the sequence.
}

【问题讨论】:

  • 你能展示一下你到目前为止所做的尝试,以及你到底遇到了什么问题吗?

标签: c# .net winforms


【解决方案1】:

您的正则表达式只接受第一个序列,因为它包含输入开始字符^。如果您想检测到是时候添加逗号,请改用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;

【讨论】:

    猜你喜欢
    • 2011-01-18
    • 1970-01-01
    • 1970-01-01
    • 2012-06-05
    • 2020-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-18
    相关资源
    最近更新 更多