2015-10-16 111 views
3

我试图阻止用户在.NET程序中输入'%'或多个'%'到HTML表单中。尝试过的图案(?!.%*)但它不起作用。正则表达式应该在字符串中允许'%',但只有在使用'%'时才会出现错误。.NET正则表达式 - 块'%'

+0

% - 无效,%% - 无效,fsd%lkf - 有效,%fslk有效 – NetNewBie

+0

试试这个:'[^%]'。 – PetSerAl

回答

2

我不是一个正则表达式的专家,但,这似乎是为我工作:

bool IsInputValid(string input) 
{ 
    return !Regex.IsMatch(input,"^[%]+$"); 
} 

和示例:

Debug.WriteLine(IsInputValid("%")); // False 
Debug.WriteLine(IsInputValid("%%")); // False 
Debug.WriteLine(IsInputValid("fsd%lkf")); // True 
Debug.WriteLine(IsInputValid("%fslk")); // True 
0

感谢所有为您的输入。我已经尝试了几个组合从你的答案终于想出了([^%])(。*)$ 它非常接近(仍然%% xxx被标记为无效)。 但现在这对我有效。