正則表達式(轉載)

原文地址:http://www.cnblogs.com/springsnow/archive/2010/05/17/1737152.html

  • 只能輸入數字:"^[0-9]*$"。
  • 只能輸入n位的數字:"^/d{n}$"。
  • 只能輸入至少n位的數字:"^/d{n,}$"。
  • 只能輸入m~n位的數字:。"^/d{m,n}$"
  • 只能輸入零和非零開頭的數字:"^(0|[1-9][0-9]*)$"。
  • 只能輸入有兩位小數的正實數:"^[0-9]+(.[0-9]{2})?$"。
  • 只能輸入有1~3位小數的正實數:"^[0-9]+(.[0-9]{1,3})?$"。
  • 只能輸入非零的正整數:"^/+?[1-9][0-9]*$"。
  • 只能輸入非零的負整數:"^/-[1-9][]0-9"*$。
  • 只能輸入長度爲3的字符:"^.{3}$"。
  • 只能輸入由26個英文字母組成的字符串:"^[A-Za-z]+$"。
  • 只能輸入由26個大寫英文字母組成的字符串:"^[A-Z]+$"。
  • 只能輸入由26個小寫英文字母組成的字符串:"^[a-z]+$"。
  • 只能輸入由數字和26個英文字母組成的字符串:"^[A-Za-z0-9]+$"。
  • 只能輸入由數字、26個英文字母或者下劃線組成的字符串:"^/w+$"。
  • 驗證用戶密碼:"^[a-zA-Z]/w{5,17}$" 正確格式爲:以字母開頭,長度在6~18之間,只能包含字符、數字和下劃線。
  • 驗證是否含有^%&',;=?$/"等字符:"[^%&',;=?$/x22]+"。
  • 只能輸入漢字:"^[/u4e00-/u9fa5]{0,}$"
  • 驗證Email地址:"^/w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*$"。
  • 驗證InternetURL:"^http://([/w-]+/.)+[/w-]+(/[/w-./?%&=]*)?$"。
  • 驗證電話號碼:"^(/(/d{3,4}-)|/d{3.4}-)?/d{7,8}$"   正確格式爲:"XXX-XXXXXXX"、"XXXX-XXXXXXXX"、"XXX-XXXXXXX"、"XXX-XXXXXXXX"、"XXXXXXX"和"XXXXXXXX"。
  • 驗證身份證號(15位或18位數字):"^/d{15}|/d{18}$"。
  • 驗證一年的12個月:"^(0?[1-9]|1[0-2])$"正確格式爲:"01"~"09"和"1"~"12"。
  • 驗證一個月的31天:"^((0?[1-9])|((1|2)[0-9])|30|31)$"正確格式爲;"01"~"09"和"1"~"31"。
  • 利用正則表達式限制網頁表單裏的文本框輸入內容:
    用正則表達式限制只能輸入中文:οnkeyup="value=value.replace(/[^/u4E00-/u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^/u4E00-/u9FA5]/g,''))"
    用正則表達式限制只能輸入全角字符: οnkeyup="value=value.replace(/[^/uFF00-/uFFFF]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^/uFF00-/uFFFF]/g,''))"
    用正則表達式限制只能輸入數字:οnkeyup="value=value.replace(/[^/d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^/d]/g,''))" 用正則表達式限制只能輸入數字和英文:οnkeyup="value=value.replace(/[/W]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^/d]/g,''))"
  • 得用正則表達式從URL地址中提取文件名的javascript程序,如下結果爲page1
    s="http://www.9499.net/page1.htm"
    s=s.replace(/(.*//){0,}([^/.]+).*/ig,"$2")
    alert(s)
  • 匹配雙字節字符(包括漢字在內):[^/x00-/xff]
    應用:計算字符串的長度(一個雙字節字符長度計2,ASCII字符計1) String.prototype.len=function(){return this.replace([^/x00-/xff]/g,"aa").length;}
  • 匹配空行的正則表達式:/n[/s| ]*/r
  • 匹配HTML標記的正則表達式:/<(.*)>.*<///1>|<(.*) //>/
  • 匹配首尾空格的正則表達式:(^/s*)|(/s*$)
    String.prototype.trim = function()
    {
        return this.replace(/(^/s*)|(/s*$)/g, "");
    }
  • 利用正則表達式分解和轉換IP地址:
    下面是利用正則表達式匹配IP地址,並將IP地址轉換成對應數值的Javascript程序:

    function IP2V(ip)
    {
    re=/(/d+)/.(/d+)/.(/d+)/.(/d+)/g  //匹配IP地址的正則表達式
    if(re.test(ip))
    {
    return RegExp.$1*Math.pow(255,3))+RegExp.$2*Math.pow(255,2))+RegExp.$3*255+RegExp.$4*1
    }
    else
    {
    throw new Error("Not a valid IP address!")
    }
    }

    不過上面的程序如果不用正則表達式,而直接用split函數來分解可能更簡單,程序如下:

    var ip="10.100.20.168"
    ip=ip.split(".")
    alert("IP值是:"+(ip[0]*255*255*255+ip[1]*255*255+ip[2]*255+ip[3]*1))

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章