<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    每日一得

    不求多得,只求一得 about java,hibernate,spring,design,database,Ror,ruby,快速開發
    最近關心的內容:SSH,seam,flex,敏捷,TDD
    本站的官方站點是:顛覆軟件

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      220 隨筆 :: 9 文章 :: 421 評論 :: 0 Trackbacks

    key words:正則表達式 ?模式匹配 javascript

    摘要:收集一些常用的正則表達式。

    正則表達式用于字符串處理,表單驗證等場合,實用高效,但用到時總是不太把握,以致往往要上網查一番。我將一些常用的表達式收藏在這里,作備忘之用。本貼隨時會更新。

    匹配中文字符的正則表達式: [\u4e00-\u9fa5]

    匹配雙字節字符(包括漢字在內):[^\x00-\xff]

    應用:計算字符串的長度(一個雙字節字符長度計2,ASCII字符計1)

    String.prototype.len=function(){return this.replace([^\x00-\xff]/g,"aa").length;}

    匹配空行的正則表達式:\n[\s| ]*\r

    匹配HTML標記的正則表達式:/<(.*)>.*<\/\1>|<(.*) \/>/

    匹配首尾空格的正則表達式:(^\s*)|(\s*$)

    應用:javascript中沒有像vbscript那樣的trim函數,我們就可以利用這個表達式來實現,如下:

    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))

    匹配Email地址的正則表達式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*

    匹配網址URL的正則表達式:http://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?

    得用正則表達式從URL地址中提取文件名的javascript程序,如下結果為page1

    s="http://www.9499.net/page1.htm"
    s=s.replace(/(.*\/){0,}([^\.]+).*/ig,"$2")
    alert(s)

    利用正則表達式限制網頁表單里的文本框輸入內容:

    用正則表達式限制只能輸入中文: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,''))"

    用正則表達式限制只能輸入數字: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,''))"

    "^\\d+$"  //非負整數(正整數 + 0)
    "^[0-9]*[1-9][0-9]*$"  //正整數
    "^((-\\d+)|(0+))$"  //非正整數(負整數 + 0)
    "^-[0-9]*[1-9][0-9]*$"  //負整數
    "^-?\\d+$"    //整數
    "^\\d+(\\.\\d+)?$"  //非負浮點數(正浮點數 + 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+)?)|(0+(\\.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+)?$"  //浮點數
    "^[A-Za-z]+$"  //由26個英文字母組成的字符串
    "^[A-Z]+$"  //由26個英文字母的大寫組成的字符串
    "^[a-z]+$"  //由26個英文字母的小寫組成的字符串
    "^[A-Za-z0-9]+$"  //由數字和26個英文字母組成的字符串
    "^\\w+$"  //由數字、26個英文字母或者下劃線組成的字符串
    "^[\\w-]+(\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+$"    //email地址
    "^[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$"  //url

    "^[A-Za-z0-9_]*$"

    posted on 2006-08-29 15:02 Alex 閱讀(589) 評論(1)  編輯  收藏 所屬分類: web技術

    評論

    # re: [zt]經典正則表達式 2007-12-18 12:36 大蘿卜
    錯誤的蠻多的.
    歪打正著的也有一些.
    比如ip的,每個區段是0-255,這樣每個小段的表達式為([012]?\d{1,2}),更糟糕的是,對于進制的理解,如果要將地址轉化為數字,每個區段的進制,應該是不小于256的表達,否則的話,如lz這樣,1.255 == 2.0,10進制的每個位置上,沒有大于9的表達,16進制上的每位,也沒大于15的表達;
    漢字的編碼區段,大概是那個范圍,但確切的不是;
    html的tag里面,也有一些是不能使用的字符,例如空格;
    提取url里面文件名稱的,也是錯誤.  回復  更多評論
      

    主站蜘蛛池模板: 亚洲日本天堂在线| 亚洲综合AV在线在线播放| 免费a级毛片视频| 亚洲午夜福利在线视频| 免费阿v网站在线观看g| 亚洲综合色一区二区三区小说| 久久久久免费精品国产| 亚洲αv久久久噜噜噜噜噜| a级黄色毛片免费播放视频| 亚洲人成无码网站| 免费黄色电影在线观看| 国产V亚洲V天堂无码| 免费A级毛片av无码| 亚洲成人动漫在线观看| 成年女人喷潮毛片免费播放| 亚洲中文字幕一二三四区| 免费看少妇作爱视频| 国产精品亚洲专一区二区三区| 亚洲国产人成中文幕一级二级| 永久免费观看黄网站| 亚洲国产另类久久久精品| 99蜜桃在线观看免费视频网站| 亚洲人成毛片线播放| 日本一道本高清免费| 亚洲免费日韩无码系列| 亚洲色欲色欲综合网站| 成人午夜18免费看| yy一级毛片免费视频| 亚洲毛片在线观看| 成人免费无码大片a毛片软件 | 免费女人18毛片a级毛片视频| 免费国产黄网站在线看| 午夜影视日本亚洲欧洲精品一区| 一个人免费观看视频www| 理论片在线观看免费| 亚洲AV成人片色在线观看高潮| 扒开双腿猛进入爽爽免费视频 | 中文字幕乱码亚洲精品一区| 成人亚洲综合天堂| 亚洲免费黄色网址| 欧亚一级毛片免费看|