我想通过仅允许(空格,字母或数字,' - '和'_')验证文本框上的用户输入。我想知道是否有人可以帮助我进行正则表达式?我找到了这个SO question,但我正在尝试它并且它无效。
以下是我正在使用的内容:
if (!System.Text.RegularExpressions.Regex.IsMatch(NameTextBox.Text, "/^([a-zA-Z])([a-zA-Z0-9_ -])$/"))
感谢。
编辑 - 新方法。
我实际上决定选择这个而不是正则表达式,任何理由我不应该这样做?
if (!NameTextBox.Text.All(c=>Char.IsLetterOrDigit(c) || c==' ' || c=='_' || c=='-'))
答案 0 :(得分:1)
在开始和结束时摆脱正斜杠,这是一个javascript的事情。
"^([a-zA-Z])([a-zA-Z0-9_ -]){1,80}$"
答案 1 :(得分:1)
我认为这就是你想要的正则表达式:@"^[\w\s-]{1,80}$"
^ match start of string
\w will match any [A-Za-z0-9_]
\s will match any whitespace
- will match the - character
{1,80} requires between 1 and 80 characters
$ match end of string
如果用空格表示你想要只匹配空格(而不是标签),请将其切换为:
@"^[\w -]{1,80}$"
答案 2 :(得分:1)
尝试:
([a-zA-Z0-9-_\s])
该组匹配大小写字母a-z,0-9,“ - ”,“_”和空格(“\ s”)。