模式表達(dá)式首尾帶有“/”,聲明并初始化正則表達(dá)式對象可以使用RegExp對象,也可直接將用“/”包含的模式表達(dá)式賦值給變量。 模式表達(dá)式中的字符 字符 含義 \ (1)一個(gè)特殊標(biāo)記的開始(例:\d表示一個(gè)數(shù)字) (2)把一個(gè)特殊字符當(dāng)做普通字符對待(例:\*表示一個(gè)星號) ^ 字符串的開頭 $ 字符串的結(jié)尾 * 特殊數(shù)量符,表示它前面的標(biāo)記或標(biāo)記組合出現(xiàn)任意次(包括0次) + 特殊數(shù)量符,表示它前面的標(biāo)記或標(biāo)記組合出現(xiàn)至少一次 ? 特殊數(shù)量符,表示它前面的標(biāo)記或標(biāo)記組合出現(xiàn)至多一次 . 表示除了換行符(\n)之外的任意單個(gè)字符 (abc) 表示abc這個(gè)組合 a|b 表示a或者b {3} 表示它前面的標(biāo)記或標(biāo)記組合出現(xiàn)3次 {3,} 表示它前面的標(biāo)記或標(biāo)記組合至少出現(xiàn)3次 {4,8} 表示它前面的標(biāo)記或標(biāo)記組合出現(xiàn)4次至8次 [abcdef] 這是枚舉形式,表示a至f六個(gè)字母中的任意一個(gè) [a-f] 這是簡化形式,表示a至f六個(gè)字母中的任意一個(gè) [a-zA-Z0-9] 表示大小寫字母及數(shù)字中的任意一個(gè) [^aeiou] 表示除了a,e,i,o,u處的任意一個(gè) \b 表示一個(gè)單詞的邊界 \B 表示一個(gè)單詞的非邊界 \d 表示一個(gè)數(shù)字,相當(dāng)于[0-9] \D 表示除了數(shù)字外的字符,相當(dāng)于[^0-9] \s 表示一個(gè)空格符 \S 表示除了空格外的字符 \t 表示一個(gè)制表符 \n 表示一個(gè)換行符 \r 表示一個(gè)回車符 \w 表示大小寫字母、數(shù)字及下劃線(_)中的任意一個(gè),相當(dāng)于[a-zA-Z0-9] \W 表示大小寫字母、數(shù)字及下劃線(_)之外的任意一個(gè),相當(dāng)于[^a-zA-Z0-9] \0 表示空字符null <script language="javascript"> <!-- var pattern = /^d...{6}$/; //聲明了正則表達(dá)式對象 function checkZipCode() ...{ var zipcode = document.getElementById("zipcode").value; if(!pattern.test(zipcode)) //進(jìn)行模式匹配 ...{ alert("郵政編碼無效!"); return; } alert("ok!"); } --> </script> 郵政編碼:<input type="text" id="zipcode"><input type="button" value="check" onclick="checkZipCode();">RegExp 對象 RegExp對象的構(gòu)造函數(shù):RegExp(pattern,attributes) 例:var p = new RegExp("s$"); //任何以s結(jié)尾的字符串 參數(shù):pattern 是模式表達(dá)式,也可以是一個(gè)正則表達(dá)式對象。 參數(shù):attributes可以是"g"、"i"或"m" g:表明搜索模式為全局匹配 i:表示在匹配過程中忽略大小寫 m:表示支持多行匹配
RegExp對象的屬性 lastIndex屬性:用于在全局匹配模式下記錄最近一次執(zhí)行exec()或test()方法匹配到的字符索引,以便從該位置繼續(xù)下一次匹配。 source屬性:代表模式表達(dá)式,不包含首尾“/” RegExp對象的方法 exec方法:用于執(zhí)行較為全面的模式匹配,其參數(shù)是將進(jìn)行匹配的字符串,返回值為數(shù)組類型。 數(shù)組中的第一個(gè)元素是與模式表達(dá)式匹配的那部分文本。返回的數(shù)組還有以下幾個(gè)屬性: length:表明數(shù)組的長度 index:表明匹配的文本首字母在字符串中的位置(索引) input:字符串本身 <script language="javascript"> <!-- var pattern1 = new RegExp("\bJava\B","g"); var text = "JavaScript is more fun than Java or JavaBeans!"; var result; while((result = pattern1.exec(text)) != null)...{ document.write("匹配文本為:" + result[0] + " 位置為:" + result.index + " 下次查找的起始位置:" + pattern1.lastIndex + "<br/>"); }
var pattern2 = /Java(s|b)/gi; while((result = pattern2.exec(text)) != null)...{ document.write("返回的第一個(gè)元素:" + result[0] + " 返回的第二個(gè)元素:" + result[1] + "<br/>"); } --> </script>
|