BloveSaga

          在希臘帕爾納斯山南坡上,有一個馳名世界的戴爾波伊神托所,在它的入口處的巨石上赫然銹刻著這樣幾個大字: 認識你自己!

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            34 隨筆 :: 12 文章 :: 122 評論 :: 0 Trackbacks

          匹配中文字符的正則表達式: ?[\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-?./?%&=]*)?

          利用正則表達式去除字串中重復的字符的算法程序: [ 注:此程序不正確,原因見本貼回復 ]

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

          這個方法對于字符順序有要求的字符串可能不適用。

          得用正則表達式從 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,''))"?
          Email?:?/^\w+([-+.]\w+)*@\w+([-.]\\w+)*\.\w+([-.]\w+)*$/,????
          Phone?:?/^((\(\d{3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}$/,????
          Mobile?:?/^((\(\d{3}\))|(\d{3}\-))?13\d{9}$/,????
          Url?:?/^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/,????
          IdCard?:?/^\d{15}(\d{2}[A-Za-z0-9])?$/,????
          Currency?:?/^\d+(\.\d+)?$/,
          Number?:?/^\d+$/,????
          Zip?:?/^[1-9]\d{5}$/,????
          QQ?:?/^[1-9]\d{4,8}$/,????
          Integer?:?/^[-\+]?\d+$/,????
          Double?:?/^[-\+]?\d+(\.\d+)?$/,????
          English?:?/^[A-Za-z]+$/,????
          Chinese?:??/^[\u0391-\uFFE5]+$/,????
          UnSafe?:/^(([A-Z]*|[a-z]*|\d*|[-_\~!@#\$%\^&\*\.\(\)\[\]\{\}<>\?\\\/\'\"]*)|.{0,5})$|\s/,

          posted on 2006-06-05 22:40 藍色Saga 閱讀(254) 評論(0)  編輯  收藏 所屬分類: Java Scripting Study
          主站蜘蛛池模板: 施甸县| 湾仔区| 墨竹工卡县| 柳江县| 吉安县| 绩溪县| 永川市| 彭州市| 桑植县| 通江县| 潼关县| 太仓市| 延寿县| 安庆市| 德庆县| 双牌县| 惠来县| 仙桃市| 尖扎县| 宜良县| 广安市| 社旗县| 枣强县| 宜城市| 肇源县| 巴塘县| 西青区| 湘乡市| 海原县| 怀宁县| 开远市| 乳源| 通河县| 星子县| 乐都县| 新沂市| 唐河县| 苍山县| 栾川县| 海阳市| 高邮市|