• C# 正则表达式 验证:数字、带小数点数字、电话和手机


    一、带小数点数字

    public static bool IsNumber(string input)
    {
        string pattern = "^-?\d+$|^(-?\d+)(\.\d+)?$"; 
        Regex regex = new Regex(pattern);
        return regex.IsMatch(input);
    }

     二、只能数字

    public static bool IsWholeNumber(string strNumber)
    {
        Regex g = new Regex(@"^[0-9]d*$");
        return g.IsMatch(strNumber);
    }

    三、电话号或手机号

    public static bool isPhoneNumber(string phoneNumber)
    {
        Regex g = new Regex(@"^(0[0-9]{2,3}-)([2-9][0-9]{6,7})?(-[0-9]{1,4})?$|(^(13[0-9]|15[0-9]|17[0-9]|18[0-9])d{8}$)");
        return g.IsMatch(phoneNumber);
    }

     解析:

    (1) ^(0[0-9]{2,3}-):区号

    ^:开始标志

    $:结束标志

    [0-9]{2,3}:0到9之间的数字,出现2到3次

    -:转义字符,转义区号的连接符"-"

    (2) ([2-9][0-9]{6,7})?

    ?:问号前面的数字匹配0次或1次,也就是懒惰匹配,最多匹配一次

    +:匹配1次到无穷次

    *:匹配0次到无穷次

     四、其他

    要做更精确地匹配,可以用[]表示范围,比如:

    • [0-9a-zA-Z\_]可以匹配一个数字、字母或者下划线;

    • [0-9a-zA-Z\_]+可以匹配至少由一个数字、字母或者下划线组成的字符串,比如'a100''0_Z''Py3000'等等;

    • [a-zA-Z\_][0-9a-zA-Z\_]*可以匹配由字母或下划线开头,后接任意个由一个数字、字母或者下划线组成的字符串,也就是Python合法的变量;

    • [a-zA-Z\_][0-9a-zA-Z\_]{0, 19}更精确地限制了变量的长度是1-20个字符(前面1个字符+后面最多19个字符)。

    A|B可以匹配A或B,所以(P|p)ython可以匹配'Python'或者'python'

    参考:

     http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/00143193331387014ccd1040c814dee8b2164bb4f064cff000

  • 相关阅读:
    转】Apache解决高并发和高可用
    Kafka学习(一)配置及简单命令使用
    unity3d教程动态创建简单平面地形
    LeetCode: Unique Binary Search Trees [095]
    德惠也有星巴克
    一个css和js结合的下拉菜单,支持主流浏览器
    【图像处理】人类视觉成像原理
    windows使用nginx+memcached实现负载均衡和session或者缓存共享
    OpenCV基础篇之画图及RNG随机数对象
    在阿里云上布置git server
  • 原文地址:https://www.cnblogs.com/Donnnnnn/p/6085122.html
Copyright © 2020-2023  润新知