【问题标题】:C# String and Digits Regular ExpressionC# 字符串和数字正则表达式
【发布时间】:2020-06-15 07:34:20
【问题描述】:

我怎样才能允许只能输入 2words 只接受 M 和 C 字和 5 位数字 (0-9) 的用户? 例如 MC04326 到目前为止,这是我的代码

else if (!(new Regex(@"^(MC)(([][0-9])$")).IsMatch(txtStudentIDReg.Text))
{ 

}

【问题讨论】:

  • 你想要的正则表达式模式是^MC[0-9]{5}$。您可能想查看一个好的正则表达式教程以了解更多信息。
  • 如果 MC 是固定的,那么为什么不使用简单的 NumericUpDown 控件或 MaskEdit 控件来只保留数字部分的输入?
  • else if (!Regex.IsMatch(txtStudentIDReg.Text, @"^MC[0-9]{5}$")) { ... }
  • 是的,现在可以了。但是,如何在键入时禁用除 M 和 C 之外的所有字母? MC后只能输入数字
  • “CMxxxxx”是有效输入还是只接受“MCxxxxx”?

标签: c# .net forms winforms


【解决方案1】:

这样简单的验证不需要正则表达式:

// str is inputted string
var isValid = 
  str.StartsWith("MC") && // starts with MC
  str.Substring(2).All(ch => char.IsDigit(ch)) && // after second character, all are digits
  str.Length == 7; // is of length 7

【讨论】:

  • 请为str.Length == 7添加检查,否则"MC123456789"将有效
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-09-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-22
  • 2012-08-20
  • 1970-01-01
相关资源
最近更新 更多