隨筆-20  評(píng)論-2  文章-0  trackbacks-0

          匹配中文字符的正則表達(dá)式: [\u4e00-\u9fa5]
          匹配雙字節(jié)字符(包括漢字在內(nèi)): [^\x00-\xff]

          應(yīng)用:計(jì)算字符串的長(zhǎng)度(一個(gè)雙字節(jié)字符長(zhǎng)度計(jì)2,ASCII字符計(jì)1)
          String.prototype.len=function(){return this.replace([^\x00-\xff]/g,"aa").length;}
          匹配空行的正則表達(dá)式: \n[\s| ]*\r
          匹配HTML標(biāo)記的正則表達(dá)式: /<(.*)>.*<\/>|<(.*) \/>/
          匹配首尾空格的正則表達(dá)式: (^\s*)|(\s*$)

          應(yīng)用:javascript中沒有像vbscript那樣的trim函數(shù),我們就可以利用這個(gè)表達(dá)式來(lái)實(shí)現(xiàn),如下:
          String.prototype.trim = function() {
          return this.replace(/(^\s*)|(\s*$)/g, "");
          }


          利用正則表達(dá)式分解和轉(zhuǎn)換IP地址:
          下面是利用正則表達(dá)式匹配IP地址,并將IP地址轉(zhuǎn)換成對(duì)應(yīng)數(shù)值的javascript程序:

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


          不過上面的程序如果不用正則表達(dá)式,而直接用split函數(shù)來(lái)分解可能更簡(jiǎn)單,程序如下:

          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地址的正則表達(dá)式: \w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
          匹配網(wǎng)址URL的正則表達(dá)式: http://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?


          利用正則表達(dá)式去除字串中重復(fù)的字符的算法程序:

          var s="abacabefgeeii"
          var s1=s.replace(/(.).*/g,"")
          var re=new RegExp("["+s1+"]","g")
          var s2=s.replace(re,"")
          alert(s1+s2) //結(jié)果為:abcefgi


          用正則表達(dá)式從URL地址中提取文件名的javascript程序,如下結(jié)果為page1

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


          利用正則表達(dá)式限制網(wǎng)頁(yè)表單里的文本框輸入內(nèi)容:

          用正則表達(dá)式限制只能輸入中文:
          onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))"

          用正則表達(dá)式限制只能輸入全角字符:
          onkeyup="value=value.replace(/[^\uFF00-\uFFFF]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\uFF00-\uFFFF]/g,''))"

          用正則表達(dá)式限制只能輸入數(shù)字:
          onkeyup="value=value.replace(/[^\d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"

          用正則表達(dá)式限制只能輸入數(shù)字和英文:
          onkeyup="value=value.replace(/[\W]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"


          文章來(lái)源:http://blog.163.com/ccbobo_cat/blog/static/32099462200961005220547
          posted on 2009-07-10 12:52 C.B.K 閱讀(218) 評(píng)論(0)  編輯  收藏

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 泰顺县| 汉沽区| 贡觉县| 环江| 新绛县| 阿拉善右旗| 南溪县| 安吉县| 九龙县| 山阳县| 鹰潭市| 财经| 库尔勒市| 梅河口市| 沅江市| 东源县| 贺兰县| 上林县| 前郭尔| 如东县| 乐至县| 泰来县| 股票| 巴南区| 泸水县| 安吉县| 清涧县| 沛县| 秦安县| 莱阳市| 秦皇岛市| 辽阳县| 武强县| 嘉鱼县| 大悟县| 富源县| 徐汇区| 宁陵县| 岳池县| 新竹市| 图木舒克市|