1.如何一个输入框textbox1有3位以上(包含三位)的时候(不区分大小写字母)
例如:textbox1为Admin的时候,另一输入框textbox2必须不包含以下:
Adm,dmi,min,Admi,dmin,admin
这样的check方法如何考虑 是否要用到正则表达式 请教大家牛人!2.一个输入框textbox1不能包含的有:逗号,句号,破折号,连字符,下划线,£,#,space,tab的check
但是补充的是需要如:
输入框中文字为 :this is a famous thing
要求只有大于3位才做check,就是说 is 和 a 不用做前面的check
这个正则表达式会写 但如何做到这点补充的还请教各位指点下,实在想了很久
例如:textbox1为Admin的时候,另一输入框textbox2必须不包含以下:
Adm,dmi,min,Admi,dmin,admin
这样的check方法如何考虑 是否要用到正则表达式 请教大家牛人!2.一个输入框textbox1不能包含的有:逗号,句号,破折号,连字符,下划线,£,#,space,tab的check
但是补充的是需要如:
输入框中文字为 :this is a famous thing
要求只有大于3位才做check,就是说 is 和 a 不用做前面的check
这个正则表达式会写 但如何做到这点补充的还请教各位指点下,实在想了很久
比如:admin用户输入长度为4,
那么就比对一下是否为admi和dmin,这个思路比较简单,程序也简单,想提高效率的话,还有更好的方法,
其实就是KMP一下,不过程序就会复杂一些。
public bool isExists(string txt1, string txt2)
{
for (int i = 3; i < txt1.Length; i++)
{
for (int j = 0; j < txt1.Length - i; j++)
{
if (txt2.IndexOf(txt1.Substring(j, i)) > -1) return true;
}
}
return false;
}
//测试用代码
private void button11_Click(object sender, EventArgs e)
{
MessageBox.Show(isExists(textBox1.Text,textBox2.Text).ToString());
}试了下正则,没想出简单的方法,3-4行代码写不出来。
如果定量匹配,部分串是否在另一个串中,还不如用字符串函数(IndexOf)来的直接、简捷。
{
for (int i = 3; i < txt1.Length; i++)
{
for (int j = 0; j < txt1.Length - i; j++)
{
if (txt2.IndexOf(txt1.Substring(j, i)) > -1) return true;
}
}
return false;
}验证结果不对啊
public bool isExists(string txt1, string txt2) //忽略大小写
{
txt1 = txt1.ToLower();
txt2 = txt2.ToLower();
for (int i = 3; i < txt1.Length; i++)
{
for (int j = 0; j < txt1.Length - i; j++)
{
if (txt2.IndexOf(txt1.Substring(j, i)) > -1) return true;
}
}
return false;
}
学方法,要思路,而不是要代码,才能真正提高。
{
string txt1 = TextBox1.Text.ToUpper();
string txt2 = TextBox2.Text.ToUpper();
if (isExists(txt1, txt2))
Label1.Text = "True";
else
Label1.Text = "False";
} public bool isExists(string txt1, string txt2)
{
for (int i = 3; i < txt1.Length; i++)
{
for (int j = 0; j < txt1.Length - i; j++)
{
if (txt2.IndexOf(txt1.Substring(j, i)) > -1) return true;
}
}
return false;
}
呵呵一样啊
如果是第一题就是
TextBox1 = "KingSoft123@"
TextBox2 = "kin"TextBox1 = "KingSoft123@"
TextBox2 = "Kis"
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show(isExists(textBox1.Text).ToString());
}
public bool isExists(string str)
{
char[] chrs = ",._-£# \t".ToCharArray(); // 如果还加其他字符,参考在线帮助 MSDN转义符
foreach (char chr in chrs)
{
if (str.IndexOf(chr) > -1) return true;
}
return false;
}
{
char[] chrs = ",._-£# \t".ToCharArray(); // 如果还加其他字符,参考在线帮助 MSDN转义符
foreach (char chr in chrs)
{
if (str.IndexOf(chr) > -1) return true;
}
return false;
}
这个方法是否满足要求str中只有大于3位才做check?
只要检测 this和 web.
其中is不用检测
private void button8_Click(object sender, EventArgs e)
{
string str = "this is web.";
string[] strs = str.Split(' ');
foreach (string s in strs)
{
if (s.Length > 3)
{
// 在此检验 s
}
}
}
结帖了