我正在尝试验证C#winforms上文本框中的输入是否符合有效模式。
模式必须是仅包含以下字符的字符串
我正在考虑使用文本框上的“验证”事件来执行验证,但我正在努力使用正确的正则表达式 - 或者可能有比使用正则表达式更好的方法。
答案 0 :(得分:3)
正则表达式“[A-Z0-9_ /]”应该这样做。正如你在使用它们时,正则表达式似乎是最明显的选择(这是一个非常简单的验证)。
根据您选择的语言,您可能需要使用'\'引用一些特殊字符。如果您还希望允许使用小写字母,那么它将是“[a-zA-Z0-9 _ /]”。
或者,像“(\ w?\ d?_?/?)+”这样的东西可能有用 - \ w匹配任何字符,\ d任何数字。 '?'匹配前一个char 0或1时间,而最后的+允许多个匹配。
答案 1 :(得分:1)
您可以在TextBox上使用KeyDown事件,并将KeyEventArgs的SuppressKeyPress字段设置为true,如果它不是您要接受的字符之一。您可以通过检查KeyEventArgs的KeyCode字段来检查输入的字符。这将使得如果用户试图输入的字符不是你想要的字符,那么什么都不会发生。