培訓講義-前端開發(fā)基礎V3-4-正則表達式_第1頁
培訓講義-前端開發(fā)基礎V3-4-正則表達式_第2頁
培訓講義-前端開發(fā)基礎V3-4-正則表達式_第3頁
培訓講義-前端開發(fā)基礎V3-4-正則表達式_第4頁
培訓講義-前端開發(fā)基礎V3-4-正則表達式_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

華信永道新員工培訓前端開發(fā)基礎(正則表達式)培訓內(nèi)容前端開發(fā)背景知識簡介HTMLJavascript正則表達式jQuery2什么是正則表達式?…正則表達式(regularexpression)描述了一種字符串匹配的模式,可以用來檢查一個串是否含有某種子串示例:驗證郵政編碼,6位數(shù)字varcode="123456"alert(check(code));//使用傳統(tǒng)方法functioncheck(s){ if(s.length!=6)returnfalse; varnumbers="0123456789"; for(vari=0;i<6;i++){ varch=s.substr(i,1); if(numbers.indexOf(ch)==-1)returnfalse; } returntrue;}3//使用正則表達式functioncheck(s){

return/^\d{6}$/.test(s);}正則表達式實例分析…分析:/^\d{6}$/.test(s)

/^\d{6}$/是一個正則表達式對象

test()是正則表達式對象的方法,用來檢查字符串是否匹配正則表達式對象所描述的模式也可以寫為:varregex=/^\d{6}$/;regex.test(s);正則表達式由“/”開始和結束

^\d{6}$是正則表達式內(nèi)容,用來描述字符串模式

^匹配字符串開頭位置

$匹配字符串結束位置

\d匹配0~9的任意數(shù)字

{n}匹配前面的表達式n次

^\d{6}$描述的模式為:字符串從開始到結束包含6個數(shù)字4檢查字符串是否與指定模式匹配(對用戶在表單中輸入的數(shù)據(jù)進行校驗)根據(jù)指定的模式在字符串中提取子串替換字符串中符合指定模式的部分除了JavaScript,其他幾乎所有編程語言都支持正則表達式,它還可以在許多其他軟件環(huán)境中使用,例如文本編輯器、UnixShell腳本……正則表達式可以做什么?正則表達式語法…匹配范圍:a|b匹配表達式a或者b,例如/Hello(World|Kitty)!/可以匹配"HelloWorld!"或"HelloKitty!"

[abc]匹配方括號中的任意字符,例如/[drz]oom/可以匹配"doom"、"room"或"zoom"

[^abc]匹配不在方括號中的任意字符

[0-9]匹配任意從0到9的數(shù)字,例如/No[3-6]/可以匹配"No3"、"No4"、"No5"、"No6"

[a-z]匹配任意從a到z的小寫字母,[A-Z]匹配任意從A到Z的大寫字母。數(shù)字、小寫、大寫字母三種范圍可以組合使用,例如/[7-8c-eF-H]/可以匹配字符7、8、c、d、e、F、G、H;/[^0-9a-zA-Z]/可以匹配除了數(shù)字和字母以外的任意字符。6正則表達式語法…元字符,擁有特殊含義的字符:

.匹配除了換行符(\n)以外的任何單個字符

\d匹配一個數(shù)字字符,等價于[0-9]

\D匹配一個非數(shù)字字符,等價于[^0-9]

\t匹配一個制表符

\n匹配一個換行符

\r匹配一個回車符注意:Windows下每行結尾使用\r\n,Unix/Linux下只有\(zhòng)n

\s匹配任何空白字符(空格、換行、回車、制表符……)

\S匹配任何非空白字符

\w匹配單詞字符,等價于[A-Za-z0-9_]

\W匹配非單詞字符,等價于[^A-Za-z0-9_]

\unnnn匹配一個unicode字符,nnnn為16進制unicode編碼,例如/[\u4e00-\u9fa5]/

匹配所有中文字符

\xnn匹配一個ASCII字符,例如/[\x00-\xff]/匹配所有ASCII字符7正則表達式語法…匹配字符位置:

^匹配字符串開頭位置,例如/^h/可以匹配"hello"中的"h",但不能匹配"something"中的"h"

$匹配字符串結束位置,例如/h$/可以匹配"length"中的"h",但不能匹配"something"中的"h"

\b匹配單詞邊界,例如/or\b/可以匹配"foryou"或者"yesorno"中的"or",但不能匹配"orange"中的"or"

\B匹配非單詞邊界

(?=s)正向預查,匹配表達式s前面的位置,例如/Windows(?=XP|98)/可以匹配"WindowsXP"或"Windows98"中的"Windows",但不能匹配"Windows7"中的"Windows"

(?!s)負向預查,匹配不在表達式s前面的位置,例如/Windows(?!XP)/可以匹配除了在"XP"前面之外的"Windows"字符串8正則表達式語法…量詞,匹配出現(xiàn)次數(shù):

{n}匹配前面的表達式n次,例如/[A-Z]{3}/匹配任意三個大寫字母,如"CPU"、"IBM",但不能匹配"W3C"

{n,m}匹配前面的表達式最少n次,最多m次(n<=m),例如/\d{6,8}/可以匹配"123456","7654321","88888888"

{n,}匹配前面的表達式最少n次,例如/go{2,}gle/可以匹配"google"、"gooogle"、"goooooooooooogle"

*匹配前面的表達式零次或多次,例如/#\d*/可以匹配"#"、"#1"、"#256"、"#28875474932"

+匹配前面的表達式一次或多次,例如/ah+/可以匹配"ah"、"ahh"、"ahhhhhhhhh"

?匹配前面的表達式零次或一次,例如/apples?/可以匹配"apple"或"apples"9正則表達式語法…轉義字符:\需要轉義的字符:\/^$*+?{}[]().|例如:/^\$\d+\.\d{2}$/可以匹配"$123.45"、"$0.25"等/^\*\.(html|js|css)$/可以匹配"*.html"、"*.js"、"*.css"/^\(\d{3,4}\)\d{8}$/可以匹配"(0431)88951212"、"(010)82619957"等/^[_\$A-Za-z][_\$A-Za-z0-9]*$/可以匹配"hello"、"$123"、"_user"、"num10"10正則表達式練習…1、匹配手機號碼:1xxxxxxxxxx要求:一共11位數(shù)字,第一位必須是1,第二位可以是3、5、8。例如:、、"1868668888"2、匹配QQ號碼:xxxxxxxx要求:大于或等于10000的數(shù)字例如:"10001"、"95001209"、"622009331"3、匹配浮點數(shù):-xxx.xxxx要求:前面可以帶負號,整數(shù)至少1位,小數(shù)任意位,可以沒有小數(shù)位例如:"3.14159"、"-123.45"、"6789"、"-256"、"0"11正則表達式練習…4、匹配帶區(qū)號和分機號的電話號碼格式:(xxxx)xxxxxxxx-xxx要求:城市區(qū)號必須以0開頭,共3位或4位,電話號8位,分機號3位,分機號部分可有可無。例如:"(0431)88951212-152"、"(010)82619957"5、匹配國際電話號碼格式:+xxxxxxxxxxxxx要求:由空格分成4個部分,第一部分+號后面接1~4位國際區(qū)號,第二部分3-4位地區(qū)號不能以0開始,第三部分3-4位,第四部分4位例如:"+8643188951212"、"+12011234567"12正則表達式練習…6、匹配IP地址:xxx.xxx.xxx.xxx要求:由小數(shù)點分開的4段,每段都是0~255之間的數(shù)字例如:"5"、"00"、""7、匹配電子郵件地址:xxxx@xxx.xxx.xx要求:@前面至少1個字符(可以是數(shù)字、字母、下劃線、加減號、小數(shù)點,加減號和小數(shù)點不能在兩端),@后面由.分隔成至少2段,每段至少1個字符(可以是數(shù)字、字母、下劃線、減號、小數(shù)點,減號和小數(shù)點不能在兩端)例如:"jack@"、"yao_ming@"、"hacker+123@"、"admin.user@"13使用正則表達式進行替換…字符串替換:vars="helloworld!";alert(s.replace("o","x")); //"hellxwxrld!"正則表達式替換:vars="8appleis$10,50bananais$200";alert(s.replace(/\$\d+/,"free"));alert(s.replace(/\$\d+/g,"free"));//g表示全局匹配,i表示忽略大小寫,m執(zhí)行多行匹配alert(s.replace(/\$(\d+)/g,"¥$1"));//用小括號獲取匹配,用$1...$n使用獲取的字符串14使用正則表達式獲取匹配…另一個獲取匹配的例子:vars="姓名:張三,性別:男,年齡:20";alert(s.replace(/^姓名:(.+),性別:(.+),年齡:(.+)$/,"有一個$3歲的$2人叫$1"));在匹配時使用獲取匹配:vars="ThefoodinHollywoodisgood.";//要求:將連續(xù)兩個相同的字母替換成"xx"alert(s.replace(/o{2}/g,"xx"));//結果:"ThefxxdinHollywxxdisgxxd."alert(s.replace(/[a-z]{2}/g,"xx"));//結果:"TxxxxxxxxHxxxxxxxxxxxxxx."alert(s.replace(/([a-z])\1/g,"xx"));//結果:"ThefxxdinHoxxywxxdisgxxd."15正則表達式練習…vars="小雞唱歌嘰嘰嘰,小鴨唱歌嘎嘎嘎,小朋友大笑hahaha";//要求:把重復三次的部分替換成重復兩次,并在每次的后面加上波浪線//結果:"小雞唱歌嘰~嘰~,小鴨唱歌嘎~嘎~,小朋友大笑ha~ha~"alert(s.replace(/(.+)\1\1/g,"$1~$1~"));16?正則表達式練習…vars="<h1>靜夜思</h1><p>床前明月光</p><p>疑是地上霜</p><p>舉頭望明月</p><p>低頭思故鄉(xiāng)</p>";//要求:去掉HTML標簽(可以是任意標簽)//結果:"靜夜思床前明月光疑是地上霜舉頭望明月低頭思故鄉(xiāng)"alert(s.replace(/<\/?[a-z1-

溫馨提示

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

評論

0/150

提交評論