private void txtServerName_KeyPress(object sender, KeyPressEventArgs e)
{
if ("\\(?!.*?[\'\"!@#$%//^&*~,.\\])`=+-{}:;_/|<>".IndexOf(e.KeyChar)>0)
{
e.Handled = true;
}
}
晕,害我也弄半天,我还奇怪了
后面表达式要写成大于-1才可以,\在第一个索引=0,所以可以输入
PS:不知道为什么上面表达式要写那么 多重复的,比如*、\、.
用正则表达式吧
天好高说的应该没错,为什么不用转义字符@呢?
\杠是正则的转义符号
同时也是一些语言的转义符号
如果我要在正则里匹配\
[\\]就应该这样写
但是如果我要吧javascript里的string斜杠传到正则里
就要写[\\\\]因为在javascript里还要转义一遍
所以你吧
if ("\\(?!.*?[\'\"!@#$%//^&*~,.\\\\])`=+-{}:;_/|<>".IndexOf(e.KeyChar)>0)
上面2个\\的位置写成4个斜杠试试
用正则表达式来限定就可以了。
关键字:System.Text.RegularExpressions
去搜一下。
为什么总是喜欢用IndexOf而不用Contains呢,JS带来的惯性?
用正则嘛