在C#Winforms上validationTextbox的输入

我试图validationC#winforms上文本框的输入是否符合有效模式。

模式必须是仅包含以下字符的字符串

  • 0到9
  • A到Z.
  • “ – ”
  • “/”

我正在考虑使用文本框上的“validation”事件来执行validation,但我正在努力使用正确的正则表达式 – 或者可能有比使用正则表达式更好的方法。

正则表达式“[A-Z0-9_ /]”应该这样做。 正如你喜欢使用它们一样,Regex似乎是最明显的选择(这是一个非常简单的validation)。

根据您选择的语言,您可能需要使用’\’引用一些特殊字符。 如果您还希望允许使用小写字母,那么它将是“[a-zA-Z0-9_ /]”。

或者,像“(\ w?\ d?_?/?)+”这样的东西可能会起作用 – \ w匹配任何字符,\ d任何数字。 ‘?’ 匹配前一个char 0或1时间,而最后的+允许多个匹配。

您可以在TextBox上使用KeyDown事件,并将KeyEventArgs的SuppressKeyPress字段设置为true,如果它不是您要接受的字符之一。 您可以通过检查KeyEventArgs的KeyCode字段来检查输入的字符。 这将使得如果用户尝试键入的字符不是您想要的字符,则不会发生任何事情。