第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)

文檔簡介

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

2、:的方法: charAtcharAt()():返回字符串對(duì)象中指定索引處的字符;:返回字符串對(duì)象中指定索引處的字符; indexOfindexOf()():返回某個(gè)子字符串在目標(biāo)字符串中首次出現(xiàn)的位:返回某個(gè)子字符串在目標(biāo)字符串中首次出現(xiàn)的位置;置; substrsubstr()():從指定索引位置開始截取指定長度的字符串;:從指定索引位置開始截取指定長度的字符串; substringsubstring:返回指定索引范圍內(nèi)的字符串。:返回指定索引范圍內(nèi)的字符串。理論內(nèi)容理論內(nèi)容正則表達(dá)式及其作用正則表達(dá)式及其作用RegExpRegExp對(duì)象對(duì)象正則表達(dá)式的元字符正則表達(dá)式的元字符StringS

3、tring對(duì)象與正則表達(dá)式對(duì)象與正則表達(dá)式正則表達(dá)式驗(yàn)證表單正則表達(dá)式驗(yàn)證表單我們已經(jīng)接觸過與正則表達(dá)式有關(guān)的一些概念。例如在我們已經(jīng)接觸過與正則表達(dá)式有關(guān)的一些概念。例如在Windows操作系統(tǒng)中,用操作系統(tǒng)中,用“?”和和“* *”通配符來查找硬盤上的文件時(shí),通配符來查找硬盤上的文件時(shí),“?”?”通配符匹配文件名中的單個(gè)字符,而通配符匹配文件名中的單個(gè)字符,而“* *”通配符匹配零個(gè)或多個(gè)通配符匹配零個(gè)或多個(gè)字符。如字符。如“data?.dat”就是一種文本模式,它能匹配就是一種文本模式,它能匹配“data1.dat”、“datan.dat”和和“dataw.dat”?!癲ata*.da”

4、是另外一種文本模式是另外一種文本模式,它匹配,它匹配“data.dat”t”、“data1.dat”、“datawnc.dat”和和“datadiff.dat”等文件名。等文件名。正則表達(dá)式的功能和概念類似于正則表達(dá)式的功能和概念類似于“* *”和和“?”?”通配符所實(shí)現(xiàn)的功能通配符所實(shí)現(xiàn)的功能和概念,但它的功能更強(qiáng)大,而且更加靈活。和概念,但它的功能更強(qiáng)大,而且更加靈活。5.1 正則表達(dá)式及其作用正則表達(dá)式及其作用創(chuàng)建創(chuàng)建RegExp對(duì)象實(shí)例的兩種方式:對(duì)象實(shí)例的兩種方式: (1)構(gòu)造函數(shù)方式)構(gòu)造函數(shù)方式 var reg=new RegExp(“表達(dá)式”,“附加參數(shù)”); (2 2)普通方

5、式)普通方式 var reg=/表達(dá)式/附加參數(shù) 附加參數(shù)是可選的,用來擴(kuò)展正則表達(dá)式的含義,主要有三個(gè)參數(shù): (1)g:全局匹配。 (2)i:用作忽略大小寫的參數(shù)。 (3)m:多行匹配。 5.2 RegExp對(duì)象對(duì)象test方法方法 該方法檢查一個(gè)字符串中是否存在創(chuàng)建RegExp對(duì)象實(shí)例時(shí)所指定的正則表達(dá)式模式,如果存在則返回true,否則返回false。5.2 RegExp對(duì)象對(duì)象regExpObject.test(string);檢查字符串中是否存在檢查字符串中是否存在“world”。5.2 RegExp對(duì)象對(duì)象 var str=hello world; var regExp=new R

6、egExp(world); var result=regExp.test(str); document.write(result); /true 調(diào)用調(diào)用RegExp()RegExp()的構(gòu)造函數(shù)創(chuàng)建正則表達(dá)式對(duì)象的構(gòu)造函數(shù)創(chuàng)建正則表達(dá)式對(duì)象regExpregExp。調(diào)用正則表達(dá)式對(duì)象的調(diào)用正則表達(dá)式對(duì)象的test()test()方法檢查目標(biāo)字符串方法檢查目標(biāo)字符串strstr中中是否包含模式是否包含模式worldworld。如果在。如果在strstr中查找到模式中查找到模式worldworld,在,在頁面上輸出頁面上輸出test()test()的返回值的返回值truetrue,否則輸出返回值

7、,否則輸出返回值falsefalse。檢查字符串中是否存在檢查字符串中是否存在“world”,并忽略大小寫。,并忽略大小寫。5.2 RegExp對(duì)象對(duì)象 var str=HELLO WORLD; var regExp=/world/i; var result=regExp.test(str); document.write(result); /true 將正則表達(dá)式將正則表達(dá)式/world/i/world/i賦給變量賦給變量regExp,regExp,這是用普這是用普通方式創(chuàng)建正則表達(dá)式對(duì)象,附加參數(shù)通方式創(chuàng)建正則表達(dá)式對(duì)象,附加參數(shù)i i表示忽略表示忽略worldworld的大小寫,所以在用

8、正則表達(dá)式對(duì)象的的大小寫,所以在用正則表達(dá)式對(duì)象的testtest方法檢查方法檢查“HELLO WORLD”HELLO WORLD”中是否存在中是否存在“world”world”模模式時(shí),返回值是式時(shí),返回值是truetrue。exec方法方法 exec方法使用RegExp對(duì)象實(shí)例創(chuàng)建時(shí)指定的正則表達(dá)式模式搜索字符串,并返回一個(gè)包含搜索結(jié)果的數(shù)組。5.2 RegExp對(duì)象對(duì)象regExpObject.exec(string);在在“我愛祖國我愛家鄉(xiāng)我愛祖國我愛家鄉(xiāng)”中搜索中搜索“我我”,并輸出,并輸出“我我”在被搜索的字符串中在被搜索的字符串中的位置。的位置。5.2 RegExp對(duì)象對(duì)象 va

9、r str=我愛祖國我愛家鄉(xiāng); var regExp=/我/; var result=regExp.exec(str); document.write(在索引+result.index+位置出現(xiàn)了+result); exec方法返回的數(shù)組有index屬性,它表示匹配的字符串在整個(gè)被搜索字符串中的位置;exec方法每次從字符串的起始位置搜索第一個(gè)與模式匹配的字符串。限定符限定符 n:規(guī)定前面的元素或組合項(xiàng)要連續(xù)出現(xiàn)n次。5.3 正則表達(dá)式的元字符正則表達(dá)式的元字符var regExp=/he2/; var str=heeel;var flag= regExp.test(str)document.

10、write(flag); 執(zhí)行代碼后,在頁面上輸出true,因?yàn)樵谧址癶eeel”中,存在he2文本模式。如果要讓正則表達(dá)式“he2”中的“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á)式的元字符正則表達(dá)式的元字符var regExp=/(he)2/;var str=heeel;var flag= regExp.test(str)document.write(flag); /false 字符串“ehehel”是否存在(he)2的文本模式

11、?限定符限定符 (2)n,:規(guī)定前面的元素或組合項(xiàng)至少出現(xiàn)n次。例如“o2,”,字符串“bod”不能與之匹配,但“foood”可以與之匹配。 (3)n,m:規(guī)定前面的元素或組合項(xiàng)至少連續(xù)出現(xiàn)n次,至多連續(xù)出現(xiàn)m次,其中nm,逗號(hào)和數(shù)字之間不能有空格。例如“o1,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?”,

12、字符串“z”和“zo”都能與之匹配。5.3 正則表達(dá)式的元字符正則表達(dá)式的元字符選擇匹配符選擇匹配符 選擇匹配符有且僅有一個(gè),即“|”字符,用于選擇匹配兩個(gè)選項(xiàng)之中的任意一個(gè)。例如“chapter|section1”匹配的是“chapter”或“section1”,如果要匹配“chapter1”或“section1”,使用括號(hào),即“(chapter|section)1”。5.3 正則表達(dá)式的元字符正則表達(dá)式的元字符字符匹配符字符匹配符 (1):匹配方括號(hào)中包含的字符集中的任意一個(gè)字符。例如,正則表達(dá)式“abc”,字符“a”、“b”、“c”都可以與之匹配。 (2):匹配方括號(hào)中未包含的任何字符。

13、例如,正則表達(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á)式的元

14、字符正則表達(dá)式的元字符常用的正則表達(dá)式常用的正則表達(dá)式 1匹配身份證號(hào)碼:d15$|d18$ 2郵箱:w+w+.a-zA-Z2,3(.a-zA-Z2,3)?$; 3中國的郵政編碼:d6$ 4匹配字符串中的中文字符:u4e00-u9fa5 5驗(yàn)證5到12位的qq號(hào):d5,12$5.3 正則表達(dá)式的元字符正則表達(dá)式的元字符5.4 String對(duì)象與正則表達(dá)式對(duì)象與正則表達(dá)式n 1. match方法方法n String對(duì)象的match方法作用與RegExp對(duì)象的exec方法類似,它使用正則表達(dá)式模式對(duì)字符串進(jìn)行搜索,并返回一個(gè)包含搜索結(jié)果的數(shù)組,傳遞給match方法的參數(shù)是一個(gè)RegExp對(duì)象實(shí)例,

15、即使用正則表達(dá)式作為match方法的參數(shù)去搜索字符串;而傳遞給exec方法的參數(shù)是一個(gè)String類型的對(duì)象實(shí)例,即使用正則表達(dá)式對(duì)象去搜索作為exec方法參數(shù)的字符串。array=stringObj.match(regExpObject);要求在一句英文中,搜索以要求在一句英文中,搜索以“th”開頭的四個(gè)字符的單詞,忽略大小開頭的四個(gè)字符的單詞,忽略大小寫。寫。5.4 String對(duì)象與正則表達(dá)式對(duì)象與正則表達(dá)式 var str=This is a dog,that is a cat; var regExp=/tha-z2/gi; var arr=str.match(regExp); doc

16、ument.write(arr); (1)正則表達(dá)式/tha-z2/gi的作用是全局匹配以th開頭的4個(gè)字符,i表示不區(qū)分大小寫。(2)match()方法使用正則表達(dá)式模式對(duì)字符串進(jìn)行搜索,如果在字符串中沒有搜索到匹配正則表達(dá)式模式的內(nèi)容,則此方法返回值是null。5.4 String對(duì)象與正則表達(dá)式對(duì)象與正則表達(dá)式n 2. search方法方法n search方法利用使用正則表達(dá)式搜索,返回的是第一個(gè)匹配到的字符串在整個(gè)被搜索的字符串中的位置。如果沒有找到匹配的子串則返回-1。如果是簡單的搜索,可以用String對(duì)象的indexOf()方法。但對(duì)于較為復(fù)雜的模式匹配則需要使用search()

17、方法。index=stringObj.search(regExpObject);要求在一句英文中,搜索以要求在一句英文中,搜索以“th”開頭,且有四個(gè)字符的單詞在句子開頭,且有四個(gè)字符的單詞在句子中的位置,忽略大小寫。中的位置,忽略大小寫。5.4 String對(duì)象與正則表達(dá)式對(duì)象與正則表達(dá)式 var str=This is a dog,that is a cat; var regExp=/tha-z2/i; var index=str.search(regExp); document.write(index); 5.4 String對(duì)象與正則表達(dá)式對(duì)象與正則表達(dá)式n 3. replace方法方

18、法n replace方法使用正則表達(dá)式模式對(duì)字符串執(zhí)行搜索,并對(duì)搜索到的內(nèi)容用指定的字符串替換,返回值為包含替換后的內(nèi)容的字符串對(duì)象。var newStr= stringObj.replace(regExpObject);要求刪除用戶輸入中不必要的空格和要求刪除用戶輸入中不必要的空格和“.”.”。5.4 String對(duì)象與正則表達(dá)式對(duì)象與正則表達(dá)式function checkInfo() var str=document.getElementById(info).value; var regExp=/. /g; document.getElementById(info).value=str.r

19、eplace(regExp,); (1 1)參數(shù))參數(shù)g g用于全局替換,即所有找到的匹配都將被用于全局替換,即所有找到的匹配都將被替換。替換。(2 2)在正則表達(dá)式中,)在正則表達(dá)式中,“.”.”是元字符,匹配除換行是元字符,匹配除換行符符“n”n”之外的任何單字符,若要匹配之外的任何單字符,若要匹配“.”.”字符本字符本身,需要使用身,需要使用“.”.”。對(duì)注冊(cè)頁面進(jìn)行格式的驗(yàn)證。對(duì)注冊(cè)頁面進(jìn)行格式的驗(yàn)證。5.5 使用正則表達(dá)式驗(yàn)證表單使用正則表達(dá)式驗(yàn)證表單5.5 使用正則表達(dá)式驗(yàn)證表單使用正則表達(dá)式驗(yàn)證表單function checkName() /驗(yàn)證用戶名var name=$(txt

20、Name).value;var name_prompt=$(span_name);var nameReg=/a-zA-Za-zA-Z0-93,15$/;if(!nameReg.test(name)name_prompt.innerHTML=錯(cuò)誤,英文字母和數(shù)字組成的4-16位字符,以字母開頭;return false;name_prompt.innerHTML=格式正確;return true;5.5 使用正則表達(dá)式驗(yàn)證表單使用正則表達(dá)式驗(yàn)證表單function checkNick()/驗(yàn)證昵稱var nick=$(txtNick).value;var nick_prompt=$(span_n

21、ick);var nickReg=/u4e00-u9fa52,6$/;if(!nickReg.test(nick)nick_prompt.innerHTML=錯(cuò)誤,由26個(gè)漢字組成;return false;nick_prompt.innerHTML=格式正確;return true;5.5 使用正則表達(dá)式驗(yàn)證表單使用正則表達(dá)式驗(yàn)證表單function checkEmail() /驗(yàn)證郵箱 var email=$(txtEmail).value; var email_prompt=$(span_email); var emailReg=/w+w+(.a-zA-Z2,3)1,2$/;if(!em

22、ailReg.test(email)email_prompt.innerHTML=錯(cuò)誤,如或者;return false;email_prompt.innerHTML=格式正確;return true; 5.5 使用正則表達(dá)式驗(yàn)證表單使用正則表達(dá)式驗(yàn)證表單function checkPwd()/驗(yàn)證密碼var pwd=$(txtPwd).value;var pwd_prompt=$(span_pwd); var pwdReg=/a-zA-Z0-94,10$/;if(!pwdReg.test(pwd)pwd_prompt.innerHTML=錯(cuò)誤,由英文字母和數(shù)字組成的410位字符;return

23、 false;pwd_prompt.innerHTML=格式正確;return true;5.5 使用正則表達(dá)式驗(yàn)證表單使用正則表達(dá)式驗(yàn)證表單function checkConfirmPwd() /驗(yàn)證兩次輸入的密碼是否一致var confirmPwd=$(txtConfirmPwd).value;var pwd=$(txtPwd).value;var confirmPwd_prompt=$(span_confirmPwd);if(pwd!=confirmPwd)confirmPwd_prompt.innerHTML=錯(cuò)誤,兩次輸入的密碼不一致;return false;confirmPwd_

24、prompt.innerHTML=密碼正確;return true;5.5 使用正則表達(dá)式驗(yàn)證表單使用正則表達(dá)式驗(yàn)證表單 function checkPhone() /驗(yàn)證手機(jī)號(hào)碼var phone=$(txtPhone).value;var phone_prompt=$(span_phone); var phoneReg=/(13|15|18)d9$/;if(!phoneReg.test(phone)phone_prompt.innerHTML=錯(cuò)誤,手機(jī)號(hào)由11位數(shù)字組成,且以13開頭;return false;phone_prompt.innerHTML=格式正確;return true;5.5 使用正則表達(dá)式驗(yàn)證表單使用正則表達(dá)式驗(yàn)證表單function checkBornDate() /驗(yàn)證出生日期var bornDate=$(txtBornDate).value;var born_prompt=$(span_Born); var bornReg=/(19d2)|(200d)-(0?1-9|10-2)-(0?1-9|1-2d|30-1)$/;if(!bornReg.test(bornDate)born_prom

溫馨提示

  • 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)論