您好,我需要验证一个只接受字母数字的输入, - ,_ 为了测试这个,我使用以下代码
string pattern = @"[^a-z A-Z 0-9._-]$";
var matches = Regex.Matches(m_ModelName.Value, pattern, RegexOptions.IgnoreCase);
return (matches.Count > 0);
如果计数> 0,则表示存在无效字符。但它永远不会按照我的期望回归。请告诉我我做错了什么。这严格来说是c#
答案 0 :(得分:6)
string pattern = @"[^a-z A-Z 0-9._-]$";
这个正则表达式恰好匹配字符串中的最后一个字符(因为$ anchor)。
您可能需要以下内容:
string pattern = @"^[a-zA-Z0-9._-]+$";
return Regex.IsMatch(m_ModelName.Value, pattern, RegexOptions.IgnoreCase);
您也可以查看\w
字符类。