站長資訊網
        最全最豐富的資訊網站

        JavaScript中常用的正則表達式日常整理(全)

        //校驗是否全由數字組成

          function isDigit(s)   {   var patrn=/^[0-9]{1,20}$/;   if (!patrn.exec(s)) return false   return true   } 

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

        評注:匹配中文還真是個頭疼的事,有了這個表達式就好辦了

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

        評注:可以用來計算字符串的長度(一個雙字節字符長度計2,ASCII字符計1)

        匹配空白行的正則表達式:ns*r

        評注:可以用來刪除空白行

        匹配HTML標記的正則表達式:< (S*?)[^>]*>.*?|< .*? />

        評注:網上流傳的版本太糟糕,上面這個也僅僅能匹配部分,對于復雜的嵌套標記依舊無能為力

        匹配首尾空白字符的正則表達式:^s*|s*$

        評注:可以用來刪除行首行尾的空白字符(包括空格、制表符、換頁符等等),非常有用的表達式

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

        評注:表單驗證時很實用

        匹配網址URL的正則表達式:[a-zA-z]+://[^s]*

        評注:網上流傳的版本功能很有限,上面這個基本可以滿足需求

        匹配帳號是否合法(字母開頭,允許5-16字節,允許字母數字下劃線):^[a-zA-Z][a-zA-Z0-9_]{4,15}$

        評注:表單驗證時很實用

        匹配國內電話號碼:d{3}-d{8}|d{4}-d{7}

        評注:匹配形式如 0511-4405222 或 021-87888822

        匹配騰訊QQ號:[1-9][0-9]{4,}

        評注:騰訊QQ號從10000開始

        匹配中國郵政編碼:[1-9]d{5}(?!d)

        評注:中國郵政編碼為6位數字

        匹配身份證:d{15}|d{18}

        評注:中國的身份證為15位或18位

        匹配ip地址:d+.d+.d+.d+

        評注:提取ip地址時有用

        匹配特定數字:

        ^[1-9]d*$    //匹配正整數
        ^-[1-9]d*$   //匹配負整數
        ^-?[1-9]d*$   //匹配整數
        ^[1-9]d*|0$  //匹配非負整數(正整數 + 0)
        ^-[1-9]d*|0$   //匹配非正整數(負整數 + 0)
        ^[1-9]d*.d*|0.d*[1-9]d*$   //匹配正浮點數
        ^-([1-9]d*.d*|0.d*[1-9]d*)$  //匹配負浮點數
        ^-?([1-9]d*.d*|0.d*[1-9]d*|0?.0+|0)$  //匹配浮點數
        ^[1-9]d*.d*|0.d*[1-9]d*|0?.0+|0$   //匹配非負浮點數(正浮點數 + 0)
        ^(-([1-9]d*.d*|0.d*[1-9]d*))|0?.0+|0$  //匹配非正浮點數(負浮點數 + 0)

        評注:處理大量數據時有用,具體應用時注意修正

        匹配特定字符串:

        ^[A-Za-z]+$  //匹配由26個英文字母組成的字符串
        ^[A-Z]+$  //匹配由26個英文字母的大寫組成的字符串
        ^[a-z]+$  //匹配由26個英文字母的小寫組成的字符串
        ^[A-Za-z0-9]+$  //匹配由數字和26個英文字母組成的字符串
        ^w+$  //匹配由數字、26個英文字母或者下劃線組成的字符串

        在使用RegularExpressionValidator驗證控件時的驗證功能及其驗證表達式介紹如下:

        只能輸入數字:“^[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}$”

        正確格式為:“XXXX-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”。

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

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

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

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

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

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

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

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

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

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

          String.prototype.trim = function()  {  return this.replace(/(^s*)|(s*$)/g, “”);  }

        (3)應用:利用正則表達式分解和轉換IP地址

          function IP2V(ip) //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!”)  }  }

        (4)應用:從URL地址中提取文件名的javascript程序

          s=”http://www.9499.net/page1.htm”;  s=s.replace(/(.*/){0,}([^.]+).*/ig,”$2″) ; //Page1.htm

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

        用正則表達式限制只能輸入中文:onkeyup=”value=”/blog/value.replace(/[“^u4E00-u9FA5]/g,”) ”

          onbeforepaste=”clipboardData.setData('text',clipboardData.getData('text').replace(/[^u4E00-u9FA5]/g,”))”

        用正則表達式限制只能輸入全角字符: onkeyup=”value=”/blog/value.replace(/[“^uFF00-uFFFF]/g,”) ”

        onbeforepaste=”clipboardData.setData(‘text’,clipboardData.getData(‘text’).replace(/[^uFF00-uFFFF]/g,”))”

        用正則表達式限制只能輸入數字:onkeyup=”value=”/blog/value.replace(/[“^d]/g,”) “onbeforepaste= “clipboardData.setData

        (‘text’,clipboardData.getData(‘text’).replace(/[^d]/g,”))”

        用正則表達式限制只能輸入數字和英文:onkeyup=”value=”/blog/value.replace(/[W]/g,””) “onbeforepaste=”clipboardData.setData

        (‘text’,clipboardData.getData(‘text’).replace(/[^d]/g,”

        中正則表達式,js去掉html標記,去掉字符,截取字符(2009-01-11 10:20:14)
        2007-07-08 15:26

        1,得到網頁上的鏈接地址:

          string matchString = @"<a[^>]+href=s*(?:'(?<href>[^']+)'|""(?<href>[^""]+)""|(?<href>[^>s]+))s*[^>]*>";

        2,得到網頁的標題:

          string matchString = @"<title>(?<title>.*)</title>";

        3,去掉網頁中的所有的html標記:

          string temp = Regex.Replace(html, "<[^>]*>", ""); //html是一個要去除html標記的文檔

        java 中去掉網頁中的所有標簽

          str = str.replaceAll("<[^>]*>", "");

        4, string matchString = @”<title>([Sst]*?)</title>”;

        5,js去掉所有html標記的函數:

          function delHtmlTag(str)  {  return str.replace(/</?.+?>/g,"");//去掉所有的html標記  }  

        這個可能IE5會錯,那用這個,梅花的:

          function delHtmlTag(str)  {  return str.replace(/<[^>]+>/g,"");//去掉所有的html標記  }  

        校驗登錄名:只能輸入5-20個以字母開頭、可帶數字、“_”、“.”的字串

          function isRegisterUserName(s)    {    var patrn=/^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$/;    if (!patrn.exec(s)) return false   return true   } 

        來源:正則匹配空格的問題

        字符串內字符鍵有空格,但是空格的數量可能不一致,通過正則將空格的個數統一變為一個。

        例如:藍 色 理 想

        變成:藍 色 理 想

        aobert的正則:

          <script type="text/javascript">   var str="藍 色 理 想"   var reg=/s+/g   str = str.replace(reg," ")   document.write(str)   </script> 

        判斷字符串是不是由數字組成

        來源:有沒有簡單的方法判斷字符串由數字組成?

        這個正則比較簡單,寫了一個測試

          <script type="text/javascript">   function isDigit(str){   var reg = /^d*$/;   return reg.test(str);   }   var str = "7654321";   document.write(isDigit(str));   var str = "test";   document.write(isDigit(str));   </script>

        電話號碼正則

        來源:想問一下關于電話號碼的正則判斷

        :求一個驗證電話號碼的JS正則

        /^d{3,4}-d{7,8}(-d{3,4})?$/區號必填為3-4位的數字,區號之后用“-”與電話號碼連接

        ^d{3,4}-電話號碼為7-8位的數字

        d{7,8}分機號碼為3-4位的數字,非必填,但若填寫則以“-”與電話號碼相連接

        (-d{3,4})?手機號碼正則表達式
        正則驗證手機號,忽略前面的0,支持130-139,150-159。忽略前面0之后判斷它是11位的。

        cloeft的正則:

        /^0*(13|15)d{9}$/ ^0*匹配掉開頭任意數量的0。

        由于手機號碼是13任意數字9位,和15任意數字9位,所以可以用(13|15)d{9}匹配。

        測試代碼如下:

          function testReg(reg,str){   return reg.test(str);   }   var reg = /^0*(13|15)d{9}$/;   var str = '13889294444';   var str2 = '12889293333';   var str3 = '23445567';   document.write(testReg(reg,str)+'<br />');   document.write(testReg(reg,str2)+'<br />');   document.write(testReg(reg,str3)+'<br />');

         使用正則表達式實現刪除字符串中的空格:

        來源:請問js中有沒有去掉空格的函數

        代碼以及測試代碼如下:

          <script type="text/javascript">   //刪除字符串兩側的空白字符。   function trim(str){   return str.replace(/^s+|s+$/g,'');   }   //刪除字符串左側的空白字符。   function ltrim(str){   return str.replace(/^s+/g,'');   }   //刪除字符串右側的空白字符。   function rtrim(str){   return str.replace(/s+$/g,'');   }   //以下為測試代碼   var trimTest = " 123456789 ";  //前后各有一個空格。   document.write('length:'+trimTest.length+'<br />');  //使用前   document.write('ltrim length:'+ltrim(trimTest).length+'<br />');  //使用ltrim后   document.write('rtrim length:'+rtrim(trimTest).length+'<br />');  //使用rtrim后   document.write('trim length:'+trim(trimTest).length+'<br />');  //使用trim后   </script> 

        測試的結果如下:

        length:11
        ltrim length:10
        rtrim length:10
        trim length:9 限制文本框只能輸入數字和小數點等等

        來源:文本框輸入限制的問題????

        只能輸入數字和小數點

        var reg = /^d*.?d{0,2}$/ 開頭有若干個數字,中間有0個或者一個小數點,結尾有0到2個數字。

        只能輸入小寫的英文字母和小數點,和冒號,正反斜杠(:./)

        var reg = /[a-z./\:]+/; a-z包括了小寫的英文字母,.是小數點,/和\分別是左右反斜線,最后是冒號。整個組成一個字符集和代碼任一均可,最后在加上+,1或者多個。

        替換小數點前內容為指定內容

        來源:求一正則表達式!

        請問 怎么把這個字符串的小數點前面的字符替換為我自定義的字符串啊?

        例如:infomarket.php?id=197 替換為 test.php?id=197

        應該可以把第一個點“.”之前的所有單詞字符替換為test就可以了。我寫的正則如下:

          <script type="text/javascript">   var str = "infomarket.php?id=197";   var reg = /^w*/ig;   //匹配字符串開頭的任意個單詞字符   str = str.replace(reg,'test');   document.write(str);   </script> 

        原帖的有點復雜,沒太看明白。

        只匹配中文的正則表達式

        來源:關于上傳的時候,只能選擇中文名稱的圖片(是否可以用toASCII方法呢?)

        前兩天看的《JavaScript開發王》里恰好有中文的unicode范圍,正則如下:

        /[u4E00-u9FA5uf900-ufa2d]/ 寫了一個簡單的測試,會把所有的中文替換成“哦”。

          <script type="text/javascript">   var str = "有中文?and English.";   var reg = /[u4E00-u9FA5uf900-ufa2d]/ig;   str = str.replace(reg,'哦');   document.write(str);   </script>

        返回字符串的中文字符個數

        來源:有沒返回中文字符字節的函數!

        一般的字符長度對中文和英文都是不分別的 如JS里的length,那么如何返回字符串中中文字符的個數呢?guoshuang老師在原帖中給出了解決方案,我又沒看懂……

        不過我自己也想到了一個辦法:先去掉非中文字符,再返回length屬性。函數以及測試代碼如下:

          <script type="text/javascript">   function cLength(str){   var reg = /[^u4E00-u9FA5uf900-ufa2d]/g;   //匹配非中文的正則表達式   var temp = str.replace(reg,'');   return temp.length;   }   var str = "中文123";   document.write(str.length+'<br />');   document.write(cLength(str));   </script>

        結果:

        5

        2

        中文兩個,數字三個,正確。

        下面的測試也正確。

          var str = "中文123tets@#!#%$#[][{}";   document.write(str.length+'<br />');   document.write(cLength(str));

        正則表達式取得匹配IP地址前三段

        來源:如何用正則取IP前3段

        192.168.118.101,192.168.118.72, 192.168.118.1都替換成:192.168.118

        只要匹配掉最后一段并且替換為空字符串就行了,正則如下:

        /.d{1,3}$/ 匹配結尾的.n,.nn或者.nnn。

        測試代碼如下:

          function replaceReg(reg,str){   return str.replace(reg,'')   }   var reg = /.d{1,3}$/;   var str = '192.168.118.101';   var str2 = '192.168.118.72';   var str3 = '192.168.118.1';   document.write(replaceReg(reg,str)+'<br />');   document.write(replaceReg(reg,str2)+'<br />');   document.write(replaceReg(reg,str3)+'<br />'); 

        相似的有,這個帖子里有一個驗證IP地址的方法:求檢驗MAC地址的正則表達例子

        匹配<ul>與<ul>之間的內容
        來源:請教個正則的小問題吧
        <ul>safsf<ul>safsf</ul><ul>safsf</ul></ul>

        用正則可以得到 <ul>起到下個<ul> 之間的內容。

        正則如下:

        /<ul>[sS]+?<ul>/i 首先匹配兩側的ul標簽,中間的[sS]+?可以匹配一個或者多個任意字符,一定要非貪婪,否則會匹配<ul>safsf<ul>safsf</ul><ul>。

        用正則表達式獲得文件名

        來源:C:

        主站蜘蛛池模板: 91午夜精品亚洲一区二区三区| 欧美人与动牲交a欧美精品| 国产精品久久久天天影视香蕉| 亚洲AV日韩精品久久久久久| 国产精品成人69XXX免费视频| 国产成人久久精品一区二区三区| 亚洲欧美精品午睡沙发| 国产精品青草视频免费播放| 久草视频在线这里精品| 国产精品污WWW在线观看| 一本一本久久a久久精品综合麻豆| 国产精品尹人在线观看| 亚洲国产精品一区二区久久| 99久久免费国产精精品| 久久精品国产第一区二区三区| 亚洲愉拍99热成人精品热久久| 天天视频国产精品| 久久久久久久亚洲精品| 国产一区二区三精品久久久无广告| 亚洲日韩精品欧美一区二区| 欧美精品/日韩精品/国产精品 | 永久免费精品影视网站| 国产午夜精品久久久久九九| 北条麻妃国产九九九精品视频| 亚洲国产精品不卡在线电影| 四虎国产精品永久一区| 久久99精品久久久久久| 欧美精品一区二区精品久久 | 国产精品高清一区二区三区| 乱色精品无码一区二区国产盗| 久久久久久九九99精品| 人妻少妇精品中文字幕AV| 无码国内精品人妻少妇| 日本伊人精品一区二区三区| 午夜不卡久久精品无码免费| 少妇人妻偷人精品无码视频新浪| 亚洲AV无码成人网站久久精品大 | 99爱在线视频这里只有精品| 成人国产精品秘 果冻传媒在线 | 国产精品久久一区二区三区| 国产精品自拍一区|