用户输入限制,(空格、字母或数字、';-&';和';&&';)c#
我想通过只允许(空白、字母或数字“-”和“"”)来验证文本框上的用户输入。我想知道是否有人能帮我处理这个regexp?我发现了这个,但我正在尝试,它不起作用 以下是我正在使用的:用户输入限制,(空格、字母或数字、';-&';和';&&';)c#,c#,regex,C#,Regex,我想通过只允许(空白、字母或数字“-”和“"”)来验证文本框上的用户输入。我想知道是否有人能帮我处理这个regexp?我发现了这个,但我正在尝试,它不起作用 以下是我正在使用的: if (!System.Text.RegularExpressions.Regex.IsMatch(NameTextBox.Text, "/^([a-zA-Z])([a-zA-Z0-9_ -])$/")) 谢谢 编辑-新方法。 事实上,我决定用这个代替正则表达式,有什么理由不这样做吗 if (!NameTextBox
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=='-'))
去掉开头和结尾的正斜杠,这是javascript的特点
“^([a-zA-Z])([a-zA-Z0-9_-]){1,80}$”
我想这就是你想要的正则表达式:@“^[\w\s-]{1,80}$”
如果所说的空白是指只匹配空格(而不是制表符),请将其切换为:
@“^[\w-]{1,80}$”
试试:
([a-zA-Z0-9-_\s])
该组匹配小写和大写的a-z、0-9、“-”、“389;”和空格(“\s”)。Regex在.NET中不需要开头和结尾/。您可能还需要对剩余80个字符的字符匹配中的最后一个“-”进行转义(注意,这允许当前最多81个字符的字符串,并且至少需要2个字符)为什么第一个[a-zA-Z]组?@Serge,OP复制了SO问题的精确表达式。经过一些研究后,我决定采用不同的方法。如果有任何理由不进行新尝试,请告诉我。谢谢大家的帮助。@prolink007你的其他方法是不一样的。我没有将输入限制在1到80个字符之间。+1,谢谢,我有一个新方法,如果有任何问题,请告诉我。=)+1、谢谢,我有一个新方法,如果有什么问题请告诉我感谢您提供的所有额外信息,接受您的回答。=)谢谢在这种情况下,没有发现其他方法有任何错误。+1,谢谢,我有一个新方法,如果有任何错误,请告诉我。=)
([a-zA-Z0-9-_\s])