C#如何实现判断一个字符串中只有字母和数字

时间:2023-01-04 14:19:02
有一个字符串str,我要判断在其中是不是含有除字母数字以外的字符
比如说,如果str=asdf1321654,返回1,如果str=afs&^9//564,返回0
以前用C语言都是从字符串中提出一个字符,判断,然后提取下一个字符
不知道c#中能不也用同样的方法

(主要是用于检测用户名和密码中是否含有非法字符,初步认定用户名可以有字母数字和下滑线而密码只能有数字
不知有没有更好的解决方法,请有经验的哥哥姐姐叔叔阿姨指点下)

10 个解决方案

#1


正则表达式 easy

#2


正则:
^(?i)[a-z0-9]+$

#3


正则只有字母和数字
[a-zA-Z0-9]

#4


		private int IsDigitOrNumber(string str)
{
if(System.Text.RegularExpressions.Regex.IsMatch(str,@"(?i)^[0-9a-z]+$"))
return 1;
else return 0;
}

#5


不好意思,方法写错了。。
IsDigitOrLetter()
你也可以自己另写方法名。

#6


正则
[a-zA-Z0-9]

#7


楼上正解
结贴吧

#8


试一下以下代码
<html>
<head>
<title>检查是否为数字和字母</title>
<script language="javascript">
function check(){
str = form1.txt.value;
str = str.match(/[^a-zA-Z0-9.]/g);
if(str != null){
alert("输入错误!");
return false;
}else{
alert("输入正确!");
}
}
</script>
</head>
<body>
<form name="form1" onSubmit="return check()">
<input type="text" name="txt">
<input type="submit" value="检验">
</form>
</body>
</html>

#9


            str = textBox2.Text;
            int i = 0;
            foreach(char a in str)
            {
                if (a >= 65 && a <= 90 || a >= 97 && a <= 122 || a >= 48 && a <= 57)
                {
                    i++;
                }
                else
                {
                    MessageBox.Show("不是由字母和数字组成!");
                    break;
                }
                if(i==str.Length)
                {
                    MessageBox.Show("是由字母和数字组成!");
                }
            }


没那么麻烦 这样就可以了

#10


谢谢各位高手了

#1


正则表达式 easy

#2


正则:
^(?i)[a-z0-9]+$

#3


正则只有字母和数字
[a-zA-Z0-9]

#4


		private int IsDigitOrNumber(string str)
{
if(System.Text.RegularExpressions.Regex.IsMatch(str,@"(?i)^[0-9a-z]+$"))
return 1;
else return 0;
}

#5


不好意思,方法写错了。。
IsDigitOrLetter()
你也可以自己另写方法名。

#6


正则
[a-zA-Z0-9]

#7


楼上正解
结贴吧

#8


试一下以下代码
<html>
<head>
<title>检查是否为数字和字母</title>
<script language="javascript">
function check(){
str = form1.txt.value;
str = str.match(/[^a-zA-Z0-9.]/g);
if(str != null){
alert("输入错误!");
return false;
}else{
alert("输入正确!");
}
}
</script>
</head>
<body>
<form name="form1" onSubmit="return check()">
<input type="text" name="txt">
<input type="submit" value="检验">
</form>
</body>
</html>

#9


            str = textBox2.Text;
            int i = 0;
            foreach(char a in str)
            {
                if (a >= 65 && a <= 90 || a >= 97 && a <= 122 || a >= 48 && a <= 57)
                {
                    i++;
                }
                else
                {
                    MessageBox.Show("不是由字母和数字组成!");
                    break;
                }
                if(i==str.Length)
                {
                    MessageBox.Show("是由字母和数字组成!");
                }
            }


没那么麻烦 这样就可以了

#10


谢谢各位高手了