操纵台输入验证,判断字符串是或不是为数字字符串

By admin in 4858.com on 2019年4月14日

第三种就是 最常见的 用Try..Catch..

C#判定字符串是不是为数字字符串

     
在进行C#编制程序时候,有的时候我们需求看清一个字符串是或不是是数字字符串,大家能够透过以下二种艺术来促成。
方法一】:使用 try{} catch{} 语句。
     
大家得以在try语句块中间试验图将string类型的字符串变量转换为int类型,假设该字符串不是数字字符串则会抛出卓殊,这时在catch语句块中就能捕获分外。一旦发现非凡,则不是数字字符串。
我们得以以下三种办法将string类型转换为int类型。
(1)  int.Parse(string);
(2)  Convert.ToInt16(string); 
//当数字字符串的位数大于四的时候请使用Convert.ToInt32()
(3)  Convert.ToInt32(string);

累加三个文本框TextBox壹,和多少个按钮Button一,当点击按钮时,判断文本框中的内容是或不是为数字字符串,是的话则输出转换后的数值。

protected void Button1_Click(object sender, EventArgs e)
{
        string message = TextBox1.Text.Trim();
        int result;
        if(isNumberic(message,out result))
        {
            string
tt=”<script>alert(‘相称成功,转换后的整数为”+result+”‘)</script>”;
            Page.ClientScript.RegisterStartupScript(this.GetType(),
“”, tt);
        }
        else
            Page.ClientScript.RegisterStartupScript(this.GetType(),
“”, “<script>alert(‘相称败北!’)</script>”);
}
protected bool isNumberic(string message,out int result)
{
       //判断是还是不是为整数字符串
       //是的话则将其更换为数字并将其设为out类型的输出值、再次来到true,
不然为false
        result = -1;   //result 定义为out 用来输出值
        try
        {
          //当数字字符串的为是零星肆时,以下二种都足以转移,任选1种
          //如若位数超越四的话,请选用Convert.ToInt32() 和int.Parse()

          //result = int.Parse(message);
          //result = Convert.ToInt16(message);
            result = Convert.ToInt32(message);   
            return true;
        }
        catch
        {
            return false;
        }
}

上述方法能够将int改为double,如
double.Parse(),那样就足以看清是不是为浮点数字符串
方法二】:通过正则表明式来判断。
     
用正则表明式来验证字符串是不是为数字字符串。大家要用到Regex类的isMatch()方法。该类在System.Text.RegularExpressions;
您能够经过操纵台输入验证,判断字符串是或不是为数字字符串。using
System.Text.RegularExpressions;
导入命名空间来访问Regex类。也得以间接通过System.Text.RegularExpressions.Regex
来访问。

protected bool isNumberic(string message,out int result)
{
        System.Text.RegularExpressions.Regex rex=
        new System.Text.RegularExpressions.Regex(@”^\d+$”);
        result = -1;
        if (rex.IsMatch(message))
        {
            result = int.Parse(message);
            return true;
        }
        else
            return false;
}

由此正则说明式判断是不是相称,不仅能够用来做不难的判断相配,还能展开标准的同盟,如判断是或不是是伍人的数字字符串,Email相配等。正则表达式是一种很好的艺术。

protected void Button1_Click(object sender, EventArgs e)
{
        string message = TextBox1.Text.Trim();
        isNumeric(message); //判断字符串是还是不是为5为整数字符串
}
protected void isNumeric(string message)
{
       if (message != “” && Regex.IsMatch(message, @”^\d{5}$”))
       {
          //成功
          Page.ClientScript.RegisterStartupScript(this.GetType(), “”,
“<script>alert(‘匹配通过!确实是七人的整数字符串’)</script>”);
       }
       else
           //失败
           Page.ClientScript.RegisterStartupScript(this.GetType(), “”,
“<script>alert(‘相称失利!’)</script>”);
}

原文:

补充
//正则匹配
合营中文字符的正则表明式: [\u4e00-\u9fa5]
合作双字节字符(包括汉字在内):[^\x00-\xff]
相配空行的正则表明式:\n[\s| ]*\r
相称HTML标记的正则表明式:/<(.*)>.*<\/\1>|<(.*)
\/>/
相当首尾空格的正则表明式:(^\s*)|(\s*$)(像vbscript那样的trim函数)
相称Email地址的正则表明式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
相配网站UHavalL的正则表明式:
./?%&=]*)?
以下是例证:
应用正则表明式限制网页表单里的文本框输入内容:
用正则表明式限制只可以输入普通话:onkeyup=”value=value.replace(/[^\u4E00-\u9FA5]/g,”)”
onbeforepaste=”clipboardData.setData(‘text’,clipboardData.getData(‘text’).replace(/[^\u4E00-\u9FA5]/g,”))”

一.用正则表达式限制只好输入全角字符:
onkeyup=”value=value.replace(/[^\uFF00-\uFFFF]/g,”)”
onbeforepaste=”clipboardData.setData(‘text’,clipboardData.getData(‘text’).replace(/[^\uFF00-\uFFFF]/g,”))”

2.用正则表明式限制只可以输入数字:onkeyup=”value=value.replace(/[^\d]/g,”)
“onbeforepaste=”clipboardData.setData(‘text’,clipboardData.getData(‘text’).replace(/[^\d]/g,”))”

三.用正则表明式限制只可以输入数字和英文:onkeyup=”value=value.replace(/[\W]/g,”)
“onbeforepaste=”clipboardData.setData(‘text’,clipboardData.getData(‘text’).replace(/[^\d]/g,”))”

VS提供了三个模板“控制台应用程序”,那种应用程序首要不是用来与用户交互的,或做壹些后台程序运维的显得,或用来演习C#语法,即使当做C#语法学习的阳台,在那边就说一下在决定台下的输入验证吧。

PHP 正则验证字符串是还是不是为数字
方法一:
php中利用正则表明式验证字符串是或不是为数字一件万分简单的业务,最重大的是哪些写好正则表达式以及控制正则表明式的写法,在此选择正则表明式的艺术来列举一下判定数字的不二等秘书诀。

再try中强转你要确认的string 类型

控制台状态下,程序的输入输出是流的方式开始展览的,也正是光标是上前的(要是不做尤其处理的话),输入的辨证,只可以等用户输入完后,系统从缓冲区中把多少读出来进行认证(因为在此处未有按键事件)。举个例子吗,比如,大家提示用户从控制台上输入3个数字类型(若是是字符或字符串类型,难点就会少壹些,因为Console.ReadLine或 Console.Read方法,是重返字符串和字符的),拿年龄来声明难点呢。

<?

水到渠成便是int  catch 就不是 

最直接的表明是那样的:

if($str)
{
if(eregi(“^[0-9]+$”,$str))
{
$str=(int)$str;
}
else
{
echo “获取到的数额不是行得通的数字类型,操作将停止!”;
exit();
}
}
else
{
echo “须要表达的数量为空,操作结束!”;
exit();
}

            string a = "avdfd";
            try
            {
                int b = int.Parse(a);
            }
            catch (Exception)
            {
                Console.WriteLine("不是");
            }

            Console.WriteLine(“请输入年龄:”);

?>

再有正是简约一点的

            string agestr = Console.ReadLine();

方法二:
建议我们对首要的参数必须做过滤。如数字正则过滤
if(preg_match(“/^\d*$/”,$fgid))  echo(‘是数字’);
else  echo(‘不是数字’);
要么用函数
if(is_numeric($fgid)) echo(‘是数字’);
else echo(‘不是数字’);[/code]那三种情势的区分是 
is_numeric小数也会觉得是数字,而眼下正则会把小数点当作字符。

int.Tryparse()

            int age;

附壹些常用的正则运算:

比如 
bool  IsNumber = int.TryParse("你要判断的值",out int a);
这个更简单 但是上面那种好理解

            if (int.TryParse(agestr, out age))

证实数字:^[0-9]*$
注脚n位的数字:^\d{n}$
说明至少n位数字:^\d{n,}$
证实m-n位的数字:^\d{m,n}$
验证零和非零起来的数字:^(0|[1-9][0-9]*)$
注脚有两位小数的正实数:^[0-9]+(.[0-9]{2})?$
注明有一-4个人小数的正实数:^[0-9]+(.[0-9]{1,3})?$
表明非零的正整数:^\+?[1-9][0-9]*$
证实非零的负整数:^\-[1-9][0-9]*$
注脚非负整数(正整数 + 0)  ^\4858.com,d+$
验证非正整数(负整数 + 0)  ^((-\d+)|(0+))$
表明长度为3的字符:^.{3}$
证实由二十九个英文字母组成的字符串:^[A-Za-z]+$
证实由二陆个大写英文字母组成的字符串:^[A-Z]+$
证实由二四个小写英文字母组成的字符串:^[a-z]+$
证实由数字和2伍个英文字母组成的字符串:^[A-Za-z0-9]+$
证实由数字、二多少个英文字母也许下划线组成的字符串:^\w+$
说明用户密码:^[a-zA-Z]\w{伍,一7}$
正确格式为:以字母开端,长度在六-1八里面,只可以分包字符、数字和下划线。
证实是或不是带有 ^%&‘,;=?$\” 等字符:[^%&‘,;=?$\x22]+
评释汉字:^[\u4e00-\u9fa5],{0,}$
验证Email地址:^\w+[-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
验证InternetURL:^
;^[a-zA-z]+://(w+(-w+)*)(.(w+(-w+)*))*(?S*)?$
表明电话号码:^(\d3,4|\d{3,4}-)?\d{7,八}$:–正确格式为:XXXX-XXXXXXX,XXXX-XXXXXXXX,XXX-XXXXXXX,XXX-XXXXXXXX,XXXXXXX,XXXXXXXX。
表明身份证号(一八个人或二十人数字):^\d{15}|\d{}18$
说澳优(Ausnutria Hyproca)年的10个月:^(0?[1-9]|1[0-2])$
正确格式为:“0一”-“0九”和“一”“1二”
说明一个月的3一天:^((0?[1-9])|((1|2)[0-9])|30|3一)$ 
正确格式为:0壹、0九和1、3一。
整数:^-?\d+$
非负浮点数(正浮点数 + 0):^\d+(\.\d+)?$
正浮点数 
^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$
非正浮点数(负浮点数 + 0) ^((-\d+(\.\d+)?)|(0+(\.0+)?))$
负浮点数 
^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$
浮点数  ^(-?\d+)(\.\d+)?

接下来就是用正则去相配

            {

Regex.IsMatch(input, @"^\d+$")

                Console.WriteLine(“你输入的岁数:”, age);

 对了 还有1种就是从壹段字符串中取数字类型的值  其实照旧正则
(正则万岁)

            }

1 string str = "甘霖娘233不要再说了";    //我们抓取当前字符当中的233
2 string result = System.Text.RegularExpressions.Regex.Replace(str, @"[^0-9]+", "");3 Console.WriteLine(result);

            else

 

            {

                Console.WriteLine(“你输入的年华有误!”);

            }

大家接纳类型.TryParse方法,来试图去转换二个品种,int.TryParse是计算把字符串转换到整型,当然,这些字符串必需是数字的字符串,这样才能更换到功,不然是不成事的,再次回到值是为false的,所以利用那一点,就可以注明用户输入的年华类型正确与否。其实上边写法依旧复杂一点,于是就要简化一下,如下代码:

           Console.WriteLine(“请输入年龄:”);

            string agestr = Console.ReadLine();

            int age = int.TryParse(agestr, out age) ? age : 1;

            Console.WriteLine(“年龄为:{0}”, age);

用安慕希运算符能够在早晚水准减少了代码量,但与事先不均等的是,在此间假诺用户输入年龄有误,就会给3个私下认可值。

地点那三种做法都尚可,能起一定的作用,但最大的依靠是TryParse,那样在事情逻辑上有一点同室操戈,是通过贰个主意来注脚类型的。

实际用更加好的方法,如下:

            Regex reg = new Regex(@”^\d+$”);//重复1回或频仍

            Console.WriteLine(“请输入年龄:”);

            string agestr = Console.ReadLine();

            if (reg.Match(agestr).Success)

            {

                Console.WriteLine(“年龄是:{0}”, agestr);

            }

            else

            {

                Console.WriteLine(“输入的年纪有误”);

        }

正则表明式,它能很好消除那个标题,那里不是在座谈正则表达式,关于它的读书,请参考相关文书档案,在那边首要表达,在言语中援引那个技能,在非常的大程度上化解了数据的安全性,有效性。

例如,大家都了然,年龄,尤其是人的年纪,是在0到150,未有负数,也远非见过超越壹417虚岁的人,假设前两段代码做的话,那正是分支验证,前边验证是或不是为整型,前边验证是不是在0到一四十六岁以内,要是用正则,只须求如下变化:

Regex reg = new Regex(@”^\d$|^\d{2}$|^1[0-4]\d$|^150$”);

只要3遍的印证,核对则表明式,就能答到多少的表达。

提倡用正则,但正则一般学习和精晓起来有几许难度,那就是双刃剑。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图
Copyright @ 2010-2019 美高梅手机版4858 版权所有