//校驗是否全由數字組成
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>([/S/s/t]*?)</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-/u9FA5/uf900-/ufa2d]/ 寫了一個簡單的測試,會把所有的中文替換成“哦”。
<script type="text/javascript"> var str = "有中文?and English."; var reg = /[/u4E00-/u9FA5/uf900-/ufa2d]/ig; str = str.replace(reg,'哦'); document.write(str); </script>
返回字符串的中文字符個數
來源:有沒返回中文字符字節的函數!
一般的字符長度對中文和英文都是不分別的 如JS里的length,那么如何返回字符串中中文字符的個數呢?guoshuang老師在原帖中給出了解決方案,我又沒看懂……
不過我自己也想到了一個辦法:先去掉非中文字符,再返回length屬性。函數以及測試代碼如下:
<script type="text/javascript"> function cLength(str){ var reg = /[^/u4E00-/u9FA5/uf900-/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>[/s/S]+?<ul>/i 首先匹配兩側的ul標簽,中間的[/s/S]+?可以匹配一個或者多個任意字符,一定要非貪婪,否則會匹配<ul>safsf<ul>safsf</ul><ul>。
用正則表達式獲得文件名
來源:C:/006.jpg
c:/images/tupian/006.jpg
可能是直接在盤符根目錄下,也可能在好幾層目錄下,要求替換到只剩文件名。
xlez的正則如下:
/[^////]*[////]+/g 首先匹配非左右斜線字符0或多個,然后是左右斜線一個或者多個。形如“xxx/”或者“xxx/”或者“/”或者“/”
函數以及測試代碼:
<script type="text/javascript"> function getFileName(str){ var reg = /[^////]*[////]+/g; //xxx/或者是xxx/ str = str.replace(reg,''); return str; } var str = "c://images//tupian//006.jpg"; document.write(getFileName(str)+'<br />'); var str2 = "c:/images/tupian/test2.jpg"; document.write(getFileName(str2)); </script>
注意,/需要轉義。
絕對路徑變相對路徑
來源:討論一個正則
將<IMG height="120" width="800" src=" 其中網址可能改變,例如http://localhost等等。 cloudchen的正則: /http:////[^//]+/ 首先是http://,然后[^//]+找過1個或者多個非/字符,因為遇到第一個/表示已經到目錄了,停止匹配。 測試代碼如下: 用戶名正則 來源:求正則,急急呀!! 用于用戶名注冊,,用戶名只 能用 中文、英文、數字、下劃線、4-16個字符。 hansir和解決方案弄成正則: /^[/u4E00-/u9FA5/uf900-/ufa2d/w]{4,16}$/ 中文字符或者單詞字符,4到16個。實現4到16結成到正則里的關鍵就是開始^和結束$,這就等于整個字符串只能有這些匹配的內容,不能有多余的。 函數和測試代碼如下: 匹配英文地址 來源:-求助- 正則問題 規則如下: 包含 "點", "字母","空格","逗號","數字",但開頭和結尾不能是除字母外任何字符。 [/.a-zA-Z/s,0-9]這個字符集就實現了字母,空格,逗號和數字。最終正則如下: /^[a-zA-Z][/.a-zA-Z/s,0-9]*?[a-zA-Z]+$/ 開頭必須有字母,結束也必須是一個以上字母。測試代碼如下: 正則匹配價格 來源:為什么這個正則不起作用啊?急啊? 價格的格式應該如下: 開頭數字若干位,可能有一個小數點,小數點后面可以有兩位數字。hansir給出的對應正則如下: /^(/d*/./d{0,2}|/d+).*$/ hansir給出的測試代碼如下: 身份證號碼的匹配 來源:關于正則的,大家幫幫忙,急,在線等 身份證號碼可以是15位或者是18位,其中最后一位可以是X。其它全是數字,正則如下: /^(/d{14}|/d{17})(/d|[xX])$/ 開頭是14位或者17位數字,結尾可以是數字或者是x或者是X。 測試代碼如下: 要求文本有指定行數 來源:[求助]求一句正則表達式的寫法 匹配至少兩行的字符串,每行都為非空字符。 只要匹配到[/n/r]就表示有換行了,再保證換行的兩段都不是空字符就可以了。正則如下: //S+?[/n/r]/S+?/i 這個正則的應用應該是用在textarea里,如果是如下要求:可以支持所有字符,中間可帶空格,可以包括英文、數字、中文、標點 這樣的話,只要針對空格再改一下就行了。(按照非空的要求,上面有不能匹配“字符+空格+換行+字符”的字符串)。修改如下: //S+?/s*?[/n/r]/s*?/S+?/i 單詞首字母大寫 每單詞首字大寫,其他小寫。如blue idea轉換為Blue Idea,BLUE IDEA也轉換為Blue Idea cloeft的正則: //b(/w)|/s(/w)/g 所謂“首字母”包括兩種情況:第一種是邊界(開頭)的單詞字符,一種是空格之后的新單詞的第一個字母。測試代碼如下: 正則驗證日期格式 來源:yyyy-mm-dd的正則怎樣寫啊? yyyy-mm-dd格式 正則如下: /^/d{4}-/d{1,2}-/d{1,2}$/ 4位數字,橫線,1或者2位數字,再橫線,最后又是1或者2位數字。 測試代碼如下: 第二種格式:來源:求一正則表達式 yyyy-mm-dd 或 yyyy/mm/dd 用“或”簡單地修改一下就行了。 /^/d{4}(-|//)/d{1,2}(-|//)/d{1,2}$/ 去掉文件的后綴名 來源:求一個正則 www.abc.com/dc/fda.asp變為www.abc.com/dc/fda 如果文件后綴已知的話這個問題就非常簡單了,正則如下: //.asp$/ 匹配最后的.asp而已,測試代碼如下: 如果文件名未知的話就用這個正則://./w+$/,測試代碼如下: 驗證郵箱的正則表達式 來源:找javascript寫的表單檢查代碼! fuchangxi的正則: /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(/.[a-zA-Z0-9_-])+/ 開始必須是一個或者多個單詞字符或者是-,加上@,然后又是一個或者多個單詞字符或者是-。然后是點“.”和單詞字符和-的組合,可以有一個或者多個組合。 我不太了解郵箱的具體規則。感覺這個正則比較簡單,EMAIL校驗 正則 討論 求解里有比較詳細的郵箱正則討論。 匹配源代碼中的鏈接 來源:正則 能夠匹配HTML代碼中鏈接的正則。 原帖正則: /<a href=".+?">.+?<//a>/g 感覺有點嚴格,首先要<a href="".+?">有,而且href屬性可以是一個或者多個除換行外任意字符(非貪婪)。后面是.+?<//a>,一個或者多個除換行外任意字符(非貪婪),再加上結束標簽。 有個問題,如果a的起始標簽最后有空格,或者除了href還有其它屬性的話,上面的正則就不能匹配這個鏈接了。 例如: <a href="asdfs" >……多了個空格。 <a id="xx" href=""asdfs">……前面有屬性。 …… 重寫正則: /<a/s(/s*/w*?=".+?")*(/s*href=".+?")(/s*/w*?=".+?")*/s*>[/s/S]*?<//a>/ 思路如下:首先要有<a和一個空格。/<a/s/ 第一個(/s*/w*?=".+?")* 可以匹配一個屬性,屬性前面可能有或者沒有多余的空格,用/s*匹配;屬性名肯定是單詞字符,用/w*?匹配;=".+?"就是匹配屬性值了非換行字符若干個;整個括號外面加個*表示可能有任意多個屬性。 (/s*href=".+?") 匹配href,它也是一個屬性,所以只要把上面子正則表達式中的/w修改為href=就行了。 (/s*/w*?=".+?")*重復第一個子正則表達式,再次接受任意個屬性。 /s*>,屬性最后再加上若干個空格和>。 [/s/S]*?,鏈接的文字,可能有任何字符組成,若干個,非貪婪。 <//a>最后是結束標簽。 補充:屬性名和=之間,以及=和屬性值之間也可能有空格。所以要再加上幾個/s*。 最后的實例代碼如下: 會把所有的鏈接在頁面直接顯示出來。注意, 本帖遺留問題:如何執行從右到左的匹配。貌似JS或者VBS沒有提供這個功能2、JS或者VBS不支持 后行斷言。。用什么方法實現這個功能。 匹配鏈接的文字 代碼:<a href="#>這里要保存</a>,只保存鏈接的文本內容,標簽信息刪掉。 前面寫過一個匹配鏈接的正則: /<a/s(/s*/w*?=".+?")*(/s*href=".+?")(/s*/w*?=".+?")*/s*>[/s/S]*?<//a>/ 不過我們需要捕獲的是文字內容,所以需要做一定的修改。第一步就是在所有的括號內都加上?:表示不捕獲。第二步就是再多加一個括號放在[/s/S]*?兩側,這樣就可以捕獲到鏈接的文字內容了。最后正則如下: 測試代碼如下: 正則判斷標簽是否閉合 來源:求助 超難!正則表達式如何判斷一個標簽是否閉合 例如:<img xxx=”xxx” 就是沒有閉合的標簽; <p>p的內容,同樣也是沒閉合的標簽。 從簡單的正則開始,先匹配起始標簽 /<[a-z]+/i 再加上若干屬性: /<[a-z]+(/s*/w*?/s*=/s*".+?")*/i 下面就到關鍵點了,標簽的閉合。標簽可能有兩種方式閉合,<img xxx=”xxx” /> 或者是<p>xxx </p>。 (/s*//>) 匹配img類的結束,即/>。 (/s*?>[/s/S]*?<///1>) 匹配/p類標簽的結束標簽。>是其實標簽末尾,之后是標簽內容若干個任意字符,最后的<///1>就是結束標簽了。 加上一個或就可以解決了,最后的完整正則表達式: 整個正則: /<([a-z]+)(/s*/w*?/s*=/s*".+?")*(/s*?>[/s/S]*?<///1>|/s*//>)/i 拿這個正則,只要匹配到了就表示閉合,沒匹配到則沒有閉合。不過沒有考慮相同標簽嵌套的問題,例如 <div>aaaaaa<div>test</div> 也被判斷為合格,可以通過把最后的匹配p類結束標簽寫成子正則表達式,并且更改為非貪心,然后在匹配結果中檢查是否成對。正則如下: /<([a-z]+)(/s*/w*?/s*=/s*".+?")*(/s*?>[/s/S]*?(<///1>)+|/s*//>)/i 用正則獲得指定標簽的內容 有如下代碼:<script type="text/javascript"> var str = '<IMG height="120" width="800" /src="http://23.123.22.12/image/somepic.gif">'; var reg = /http:////[^//]+/; str = str.replace(reg,""); alert(str) </script>
<script type="text/javascript"> function isEmail(str){ var reg = /^[/u4E00-/u9FA5/uf900-/ufa2d/w]{4,16}$/; return reg.test(str); } var str = '超級無敵用戶名regExp'; var str2 = '搗亂的@'; var str3 = '太短' var str4 = '太長longlonglonglonglonglonglonglong' document.write(isEmail(str)+'<br />'); document.write(isEmail(str2)+'<br />'); document.write(isEmail(str3)+'<br />'); document.write(isEmail(str4)+'<br />'); </script>
<script type="text/javascript"> function testReg(reg,str){ return reg.test(str); } var reg = /^[a-zA-Z][/.a-zA-Z/s,0-9]*?[a-zA-Z]+$/; var str = 'No.8,ChangAn Street,BeiJing,China'; var str2 = '8.No,ChangAn Street,BeiJing,China'; var str3 = 'No.8,ChangAn Street,BeiJing,China88'; document.write(testReg(reg,str)+'<br />') document.write(testReg(reg,str2)+'<br />') document.write(testReg(reg,str3)+'<br />') </script>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>無標題文檔</title> <script type="text/javascript"> function checkPrice(me){ if(!(/^(?:/d+|/d+/./d{0,2})$/.test(me.value))){ me.value = me.value.replace(/^(/d*/./d{0,2}|/d+).*$/,'$1'); } } </script> </head> <body> <input type="text" onkeyup="checkPrice(this);"/> </body> </html>
<script type="text/javascript"> function testReg(reg,str){ return reg.test(str); } var reg = /^(/d{14}|/d{17})(/d|[xX])$/; var str = '123456789012345';//15位 var str2 = '123456789012345678';//18位 var str3 = '12345678901234567X';//最后一位是X var str4 = '1234';//位數不對 document.write(testReg(reg,str)+'<br />'); document.write(testReg(reg,str2)+'<br />'); document.write(testReg(reg,str3)+'<br />'); document.write(testReg(reg,str4)+'<br />'); </script>
來源:求個正則,處理英文單詞或詞組的<script type="text/javascript"> function replaceReg(reg,str){ str = str.toLowerCase(); return str.replace(reg,function(m){return m.toUpperCase()}) } var reg = //b(/w)|/s(/w)/g; var str = 'blue idea'; var str2 = 'BLUE IDEA'; var str3 = 'Test /n str is no good!'; var str4 = 'final test'; document.write(replaceReg(reg,str)+'<br />'); document.write(replaceReg(reg,str2)+'<br />'); document.write(replaceReg(reg,str3)+'<br />'); document.write(replaceReg(reg,str4)+'<br />'); </script>
<script type="text/javascript"> function testReg(reg,str){ return reg.test(str); } var reg = /^/d{4}-/d{1,2}-/d{1,2}$/; var str = '2008-8-8'; var str2 = '2008-08-08'; var str3 = '08-08-2008'; var str4 = '2008 08 08'; document.write(testReg(reg,str)+'<br />'); document.write(testReg(reg,str2)+'<br />'); document.write(testReg(reg,str3)+'<br />'); document.write(testReg(reg,str4)+'<br />'); </script>
<script type="text/javascript"> function delAspExtension(str){ var reg = //.asp$/; return str.replace(reg,''); } var str = 'www.abc.com/dc/fda.asp'; document.write(delAspExtension(str)+'<br />'); </script>
<script type="text/javascript"> function delExtension(str){ var reg = //./w+$/; return str.replace(reg,''); } var str = 'example.com/dc/fda.asp'; document.write(delExtension(str)+'<br />'); var str2 = 'test/regular/fda.do'; document.write(delExtension(str2)+'<br />'); var str3 = 'example.com/dc/fda.strange_extension'; document.write(delExtension(str3)+'<br />'); </script>
<script type="text/javascript"> function isEmail(str){ var reg = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(/.[a-zA-Z0-9_-])+/; return reg.test(str); } var str = 'test@hotmail.com'; document.write(isEmail(str)+'<br />'); var str2 = 'test@sima.vip.com'; document.write(isEmail(str2)+'<br />'); var str3 = 'te-st@qq.com.cn'; document.write(isEmail(str3)+'<br />'); var str4 = 'te_st@sima.vip.com'; document.write(isEmail(str4)+'<br />'); var str5 = 'te.._st@sima.vip.com'; document.write(isEmail(str5)+'<br />'); </script>
<script type="text/javascript"> function findLinks(str){ var reg = /<a/s(/s*/w*?/s*=/s*".+?")*(/s*href/s*=/s*".+?")(/s*/w*?/s*=/s*".+?") */s*>[/s/S]*?<//a>/g; var arr = str.match(reg); for(var i=0;i<arr.length;i++){ //alert(arr[i]); document.write('link:'+arr[i]+'<br />'); } } var str = '<p>測試鏈接:<a id = "test" title="無敵">經典論壇 </a></p><a? ? >藍色理想</a>'; var arr = findLinks(str); </script>
來源:求一正則?/<a/s(?:/s*/w*?/s*=/s*".+?")*(?:/s*href/s*=/s*".+?")(?:/s*/w*?/s*=/s*".+?")*/s*>([/s/S]*?)<//a>/
<script type="text/javascript"> function anchorText(str){ var reg =/<a/s(?:/s*/w*?/s*=/s*".+?")*(?:/s*href/s*=/s*".+?")(?:/s*/w*?/s*=/s*".+?")*/s*> ([/s/S]*?)<//a>/; str = str.replace(reg,'$1'); return str; } var str = '<a id = "test" title="無敵">經典論壇</a>'; document.write(anchorText(str)); </script>
來源:求一正則<channel><title>藍色理想</title></channel><item><title>界面設計測試規范</title></item><item><title>《古典寫實美女》漫畫教程</title></item><item><title>安遠
主站蜘蛛池模板:
蜜桃免费视频
|
午夜一级毛片
|
国产美女在线播放
|
黄色成人免费看
|
久久国产成人午夜av影院宅
|
黄色大片视频
|
中国av在线
|
高清视频一区二区三区
|
亚洲久久久
|
亚洲自拍电影
|
91精品国产乱码久久久久久久久
|
国产综合精品一区二区三区
|
国产区在线|
草逼逼|
成人精品视频
|
gogo熟少妇大胆尺寸
|
在线观看成人av
|
久久一区二区三区精品
|
国产二区视频
|
一本一道久久a久久精品综合蜜臀
|
日韩一区二区在线观看视频
|
91精品久久久久久久久久
|
国产韩国精品一区二区三区
|
最新免费av网站
|
高清国产一区二区三区四区五区
|
国产精品成人久久久久
|
国产成人综合视频
|
嫩草影院懂你的
|
婷婷激情综合
|
国产高清在线观看
|
欧美在线xxx
|
一区二区三区免费视频网站
|
国产1页|
99精品一区二区三区
|
精品国产一区二区三区成人影院
|
久久精品首页
|
亚洲二区视频
|
99这里只有精品视频
|
日韩精品免费在线
|
中文字幕第31页
|
黑人巨大精品欧美一区二区免费
|