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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM