第05章:正則表達(dá)式_第1頁
第05章:正則表達(dá)式_第2頁
第05章:正則表達(dá)式_第3頁
第05章:正則表達(dá)式_第4頁
第05章:正則表達(dá)式_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第5章正則表達(dá)式回顧通過創(chuàng)建Date對(duì)象,可以獲取計(jì)算機(jī)中的時(shí)間。在本地創(chuàng)建Image對(duì)象,可以實(shí)現(xiàn)圖像緩沖技術(shù)。使用Math對(duì)象進(jìn)行數(shù)學(xué)運(yùn)算。用數(shù)組列表或者Array對(duì)象創(chuàng)建數(shù)組后,可以使用“數(shù)組變量名[索引號(hào)]”的格式來訪問每個(gè)數(shù)組元素。String對(duì)象常用的屬性:length,獲取字符串的字符個(gè)數(shù)。常用的方法:

charAt():返回字符串對(duì)象中指定索引處的字符;

indexOf():返回某個(gè)子字符串在目標(biāo)字符串中首次出現(xiàn)的位置;

substr():從指定索引位置開始截取指定長(zhǎng)度的字符串;

substring:返回指定索引范圍內(nèi)的字符串。理論內(nèi)容正則表達(dá)式及其作用RegExp對(duì)象正則表達(dá)式的元字符String對(duì)象與正則表達(dá)式正則表達(dá)式驗(yàn)證表單我們已經(jīng)接觸過與正則表達(dá)式有關(guān)的一些概念。例如在Windows操作系統(tǒng)中,用“?”和“*”通配符來查找硬盤上的文件時(shí),“?”通配符匹配文件名中的單個(gè)字符,而“*”通配符匹配零個(gè)或多個(gè)字符。如“data?.dat”就是一種文本模式,它能匹配“data1.dat”、“datan.dat”和“dataw.dat”?!癲ata*.da”是另外一種文本模式,它匹配“data.dat”、“data1.dat”、“datawnc.dat”和“datadiff.dat”等文件名。正則表達(dá)式的功能和概念類似于“*”和“?”通配符所實(shí)現(xiàn)的功能和概念,但它的功能更強(qiáng)大,而且更加靈活。5.1正則表達(dá)式及其作用創(chuàng)建RegExp對(duì)象實(shí)例的兩種方式:(1)構(gòu)造函數(shù)方式varreg=newRegExp(“表達(dá)式”,“附加參數(shù)”);(2)普通方式varreg=/表達(dá)式/附加參數(shù)附加參數(shù)是可選的,用來擴(kuò)展正則表達(dá)式的含義,主要有三個(gè)參數(shù):(1)g:全局匹配。(2)i:用作忽略大小寫的參數(shù)。(3)m:多行匹配。

5.2RegExp對(duì)象test方法該方法檢查一個(gè)字符串中是否存在創(chuàng)建RegExp對(duì)象實(shí)例時(shí)所指定的正則表達(dá)式模式,如果存在則返回true,否則返回false。5.2RegExp對(duì)象regExpObject.test(string);檢查字符串中是否存在“world”。5.2RegExp對(duì)象<scripttype="text/javascript">varstr="helloworld";varregExp=newRegExp("world");varresult=regExp.test(str);document.write(result);//true</script>調(diào)用RegExp()的構(gòu)造函數(shù)創(chuàng)建正則表達(dá)式對(duì)象regExp。調(diào)用正則表達(dá)式對(duì)象的test()方法檢查目標(biāo)字符串str中是否包含模式world。如果在str中查找到模式world,在頁面上輸出test()的返回值true,否則輸出返回值false。檢查字符串中是否存在“world”,并忽略大小寫。5.2RegExp對(duì)象<scripttype="text/javascript">varstr="HELLOWORLD";varregExp=/world/i;varresult=regExp.test(str);document.write(result);//true</script>將正則表達(dá)式/world/i賦給變量regExp,這是用普通方式創(chuàng)建正則表達(dá)式對(duì)象,附加參數(shù)i表示忽略world的大小寫,所以在用正則表達(dá)式對(duì)象的test方法檢查“HELLOWORLD”中是否存在“world”模式時(shí),返回值是true。exec方法exec方法使用RegExp對(duì)象實(shí)例創(chuàng)建時(shí)指定的正則表達(dá)式模式搜索字符串,并返回一個(gè)包含搜索結(jié)果的數(shù)組。5.2RegExp對(duì)象regExpObject.exec(string);在“我愛祖國我愛家鄉(xiāng)”中搜索“我”,并輸出“我”在被搜索的字符串中的位置。5.2RegExp對(duì)象<scripttype="text/javascript">varstr="我愛祖國我愛家鄉(xiāng)";varregExp=/我/;varresult=regExp.exec(str);document.write("在索引"+result.index+"位置出現(xiàn)了"+result);</script>exec方法返回的數(shù)組有index屬性,它表示匹配的字符串在整個(gè)被搜索字符串中的位置;exec方法每次從字符串的起始位置搜索第一個(gè)與模式匹配的字符串。限定符{n}:規(guī)定前面的元素或組合項(xiàng)要連續(xù)出現(xiàn)n次。5.3正則表達(dá)式的元字符<scripttype="text/javascript">varregExp=/he{2}/;varstr="heeel";varflag=regExp.test(str)document.write(flag);</script>執(zhí)行代碼后,在頁面上輸出true,因?yàn)樵谧址癶eeel”中,存在he{2}文本模式。如果要讓正則表達(dá)式“he{2}”中的“he”同時(shí)受到{2}的作用,必須使用圓括號(hào)將它們括起來,使它們成為一個(gè)緊密結(jié)合的組合項(xiàng),這樣{2}就表示圓括號(hào)中的內(nèi)容連續(xù)出現(xiàn)2次。限定符(1){n}:規(guī)定前面的元素或組合項(xiàng)要連續(xù)出現(xiàn)n次。5.3正則表達(dá)式的元字符<scripttype="text/javascript">varregExp=/(he){2}/;varstr="heeel";varflag=regExp.test(str)document.write(flag);//false</script>字符串“ehehel”是否存在(he){2}的文本模式?限定符(2){n,}:規(guī)定前面的元素或組合項(xiàng)至少出現(xiàn)n次。例如“o{2,}”,字符串“bod”不能與之匹配,但“foood”可以與之匹配。(3){n,m}:規(guī)定前面的元素或組合項(xiàng)至少連續(xù)出現(xiàn)n次,至多連續(xù)出現(xiàn)m次,其中n≤m,逗號(hào)和數(shù)字之間不能有空格。例如“o{1,3}”,字符串“food”和字符串“foood”都能與之匹配。(4)+:規(guī)定前面的元素或組合項(xiàng)必須出現(xiàn)一次或連續(xù)出現(xiàn)多次,等效于{1,}。(5)*:規(guī)定前面的元素或組合項(xiàng)可以出現(xiàn)零次或連續(xù)多次,等效于{0,}。例如“zo*”,字符串“z”和“zoo”都能與之匹配。(6)?:規(guī)定前面的元素或組合項(xiàng)出現(xiàn)零次或一次,等效于{0,1}。例如“zo?”,字符串“z”和“zo”都能與之匹配。5.3正則表達(dá)式的元字符選擇匹配符選擇匹配符有且僅有一個(gè),即“|”字符,用于選擇匹配兩個(gè)選項(xiàng)之中的任意一個(gè)。例如“chapter|section1”匹配的是“chapter”或“section1”,如果要匹配“chapter1”或“section1”,使用括號(hào),即“(chapter|section)1”。5.3正則表達(dá)式的元字符字符匹配符(1)[…]:匹配方括號(hào)中包含的字符集中的任意一個(gè)字符。例如,正則表達(dá)式“[abc]”,字符“a”、“b”、“c”都可以與之匹配。(2)[^…]:匹配方括號(hào)中未包含的任何字符。例如,正則表達(dá)式“[^ab]”,除了字符“a”、“b”之外,其他的任何字符都可以與之匹配。(3)[a-z],[1-9]:匹配指定范圍內(nèi)的任何字符。(4)[^a-z],[^1-9]:匹配不在指定的范圍內(nèi)的任何字符。(5)\d:匹配任意一個(gè)數(shù)字字符,等效于[0-9]。(6)\D:匹配任意一個(gè)非數(shù)字字符,等效于[^0-9]。(7)\s:匹配任何空白字符,包括空格、制表符等。(8)\S:匹配任何非空白字符。(9)\w:匹配任何英文字母、數(shù)字和下劃線,等效于[A-Za-z0-9_]。(10)\W:匹配任何非英文字母和數(shù)字類字符,但不包括下劃線,等效于[^A-Za-z0-9_]。(11).:匹配除換行符\n之外的任何單字符。5.3正則表達(dá)式的元字符常用的正則表達(dá)式1.匹配身份證號(hào)碼:^\d{15}$|^\d{18}$2.郵箱:^\w+@\w+.[a-zA-Z]{2,3}(.[a-zA-Z]{2,3})?$;3.中國的郵政編碼:^\d{6}$4.匹配字符串中的中文字符:[\u4e00-\u9fa5]5.驗(yàn)證5到12位的qq號(hào):^\d{5,12}$5.3正則表達(dá)式的元字符5.4String對(duì)象與正則表達(dá)式1.match方法String對(duì)象的match方法作用與RegExp對(duì)象的exec方法類似,它使用正則表達(dá)式模式對(duì)字符串進(jìn)行搜索,并返回一個(gè)包含搜索結(jié)果的數(shù)組,傳遞給match方法的參數(shù)是一個(gè)RegExp對(duì)象實(shí)例,即使用正則表達(dá)式作為match方法的參數(shù)去搜索字符串;而傳遞給exec方法的參數(shù)是一個(gè)String類型的對(duì)象實(shí)例,即使用正則表達(dá)式對(duì)象去搜索作為exec方法參數(shù)的字符串。array=stringObj.match(regExpObject);要求在一句英文中,搜索以“th”開頭的四個(gè)字符的單詞,忽略大小寫。5.4String對(duì)象與正則表達(dá)式<scripttype="text/javascript">varstr="Thisisadog,thatisacat";varregExp=/th[a-z]{2}/gi;vararr=str.match(regExp);document.write(arr);</script>(1)正則表達(dá)式/th[a-z]{2}/gi的作用是全局匹配以th開頭的4個(gè)字符,i表示不區(qū)分大小寫。(2)match()方法使用正則表達(dá)式模式對(duì)字符串進(jìn)行搜索,如果在字符串中沒有搜索到匹配正則表達(dá)式模式的內(nèi)容,則此方法返回值是null。5.4String對(duì)象與正則表達(dá)式2.search方法search方法利用使用正則表達(dá)式搜索,返回的是第一個(gè)匹配到的字符串在整個(gè)被搜索的字符串中的位置。如果沒有找到匹配的子串則返回-1。如果是簡(jiǎn)單的搜索,可以用String對(duì)象的indexOf()方法。但對(duì)于較為復(fù)雜的模式匹配則需要使用search()方法。index=stringObj.search(regExpObject);要求在一句英文中,搜索以“th”開頭,且有四個(gè)字符的單詞在句子中的位置,忽略大小寫。5.4String對(duì)象與正則表達(dá)式<scripttype="text/javascript">varstr="Thisisadog,thatisacat";varregExp=/th[a-z]{2}/i;varindex=str.search(regExp);document.write(index);</script>5.4String對(duì)象與正則表達(dá)式3.replace方法replace方法使用正則表達(dá)式模式對(duì)字符串執(zhí)行搜索,并對(duì)搜索到的內(nèi)容用指定的字符串替換,返回值為包含替換后的內(nèi)容的字符串對(duì)象。varnewStr=stringObj.replace(regExpObject);要求刪除用戶輸入中不必要的空格和“.”。5.4String對(duì)象與正則表達(dá)式functioncheckInfo(){varstr=document.getElementById("info").value;varregExp=/[\.]/g;document.getElementById("info").value=str.replace(regExp,"");}(1)參數(shù)g用于全局替換,即所有找到的匹配都將被替換。(2)在正則表達(dá)式中,“.”是元字符,匹配除換行符“\n”之外的任何單字符,若要匹配“.”字符本身,需要使用“\.”。對(duì)注冊(cè)頁面進(jìn)行格式的驗(yàn)證。5.5使用正則表達(dá)式驗(yàn)證表單5.5使用正則表達(dá)式驗(yàn)證表單functioncheckName(){//驗(yàn)證用戶名

varname=$("txtName").value; varname_prompt=$("span_name"); varnameReg=/^[a-zA-Z][a-zA-Z0-9]{3,15}$/; if(!nameReg.test(name)){ name_prompt.innerHTML="錯(cuò)誤,英文字母和數(shù)字組成的4-16位字符,以字母開頭"; returnfalse; } name_prompt.innerHTML="格式正確"; returntrue;}5.5使用正則表達(dá)式驗(yàn)證表單functioncheckNick(){//驗(yàn)證昵稱

varnick=$("txtNick").value; varnick_prompt=$("span_nick"); varnickReg=/^[\u4e00-\u9fa5]{2,6}$/; if(!nickReg.test(nick)){ nick_prompt.innerHTML="錯(cuò)誤,由2~6個(gè)漢字組成"; returnfalse; } nick_prompt.innerHTML="格式正確"; returntrue;}5.5使用正則表達(dá)式驗(yàn)證表單functioncheckEmail(){//驗(yàn)證郵箱

varemail=$("txtEmail").value; varemail_prompt=$("span_email"); varemailReg=/^\w+@\w+(\.[a-zA-Z]{2,3}){1,2}$/; if(!emailReg.test(email)){ email_prompt.innerHTML="錯(cuò)誤,如hlx@或者h(yuǎn)lx@"; returnfalse; } email_prompt.innerHTML="格式正確"; returntrue;}5.5使用正則表達(dá)式驗(yàn)證表單functioncheckPwd(){//驗(yàn)證密碼

varpwd=$("txtPwd").value; varpwd_prompt=$("span_pwd"); varpwdReg=/^[a-zA-Z0-9]{4,10}$/; if(!pwdReg.test(pwd)){ pwd_prompt.innerHTML="錯(cuò)誤,由英文字母和數(shù)字組成的4—10位字符"; returnfalse; } pwd_prompt.innerHTML="格式正確"; returntrue;}5.5使用正則表達(dá)式驗(yàn)證表單functioncheckConfirmPwd(){//驗(yàn)證兩次輸入的密碼是否一致

varconfirmPwd=$("txtConfirmPwd").value; varpwd=$("txtPwd").value; varconfirmPwd_prompt=$("span_confirmPwd"); if(pwd!=confirmPwd){ confirmPwd_prompt.innerHTML="錯(cuò)誤,兩次輸入的密碼不一致"; returnfalse; } confirmPwd_prompt.innerHTML="密碼正確"; returntrue;}5.5使用正則表達(dá)式驗(yàn)證表單functioncheckPhone(){//驗(yàn)證手機(jī)號(hào)碼

varphone=$("txtPhone").value; varphone_prompt=$("span_phone"); varphoneReg=/^(13|15|18)\d{9}$/; if(!phoneReg.test(phone)){ phone_prompt.innerHTML="錯(cuò)誤,手機(jī)號(hào)由11位數(shù)字組成,且以13開頭"; returnfalse; } phone_prompt.innerHTML="格式正確"; retu

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論