这是我的代码,用于检查是否只填写了字母数字字符,但是当我输入类似adasd @#$的内容时,它仍然匹配,我不明白为什么。知道如何解决这个问题吗?
Match Match = Regex.Match(value.ToString(), "[0-9a-zA-Z]");
if (Match.Success)
{
return true;
}
else
{
return false;
}
答案 0 :(得分:9)
您所拥有的内容与其中包含一个字母或数字的任何字符串相匹配。
您需要将锚点添加到字符串的开头和结尾(^
和$
),以及+
以允许多个字符:
"^[0-9a-zA-Z]+$"
这意味着“整个字符串必须由字母和数字组成”。
+
还要求字符串中至少有一个字符。这可能是一件好事,但如果你想匹配空字符串,也可以将它改为*
。
答案 1 :(得分:0)
您的正则表达式[0-9a-zA-Z]
检查输入字符串中的任何字母数字字符。由于它在输入字符串中找到a,d,a,s,d,因此返回true
你需要做的是在正则表达式中放置起始和结束enchors。新的正则表达式看起来像这样:
^[0-9a-zA-Z]+$