c# - C# .Net 如何用逗号自动分隔文本框输入
问题描述
我想在我的文本框中允许以下序列。
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.
}
解决方案
您的正则表达式仅接受第一个序列,因为它包含输入开始字符^
。如果您想检测到是时候添加逗号,请改用逗号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;
推荐阅读
- mips - MIPS 指令如何正确?
- excel - Dictionary.Keys() 可以在它自己的运行时重新计算吗?
- python - 使用 python 驱动程序在 Neo4j 中创建多个节点的最佳方法
- azure - 由于引用了已删除的应用服务计划,无法删除 VNet/子网
- jquery - 如何根据复选框更改 jQgrid?
- c# - 用函数填充组合框?
- python - 如何在 pandas 数据框中编写 N 天盈亏百分比的函数?
- python-3.x - Seaborn Boxplot - 轴颜色和宽度
- javascript - 如何将字符串转换为字典数组
- sql - 如何将新插入的记录从本地数据库复制到不同的数据库