摘要:元字符代表一類字符元類字符有或者的意思。里還可以有數(shù)字大小寫字母。比如輸出量詞量詞是用來修飾字符的。
元字符 [ ]
[ ] 代表一類字符(元類字符), [ ]有或者的意思,。比如[abc],意思就是a或b或c。 [ ]里還可以有數(shù)字.大小寫字母。比如[0-9a-zA-Z]
var str="diauhvvdai"; var reg=str.replace(/[ha]/g,"xx"); console.log(reg);//輸出dixxuxxvvdxxi量詞 {}
量詞是用來修飾字符的。
{m} m位數(shù)
{m,n} m位數(shù)-n位數(shù)
{m,} m及m以上位數(shù)
+ {1,} 1位及1位以上
* 任意
? 0或1位
var str="123 38658 395 38726 34324"; var reg=str.match(/d{2,5}/g); console.log(reg);//輸出["123", "38658", "395", "38726", "34324"]盡可能匹配更多的字符(貪婪模式) console.log(/a?/.test(str));//輸出true貪婪模式
貪婪模式
var str="123 38658 395 38726 34324"; var reg=str.match(/d{2,5}/g); console.log(reg);//輸出["123", "38658", "395", "38726", "34324"]盡可能匹配更多的字符(貪婪模式)
非貪婪模式 (?)
var str="123 38658 395 38726 34324"; var reg1=/d{3,}?/g; console.log(str.match(reg1))分支 分組 引用
分支 | 或者的意思 [ab]相當于(a|b)
var str="dskj lsdk dslknv lksn"; var reg=str.match(/skj|sdk/g); console.log(reg);//輸出["skj", "sdk"] var reg1=/dskj|lsdk/g; console.log(str.match(reg1));//輸出["dskj", "lsdk"]
分組 ()
忽略分組 ?:
var str1=` 2017-08-25 hdbh-12-12 1234/11/21 2019/211/12 2134-12-122`;//模板字符串 var reg2=/(d{4})[-/](dd)(?:-|/)(d{2})[^0-9]/g; console.log(str1.match(reg2)); console.log(str1.replace(reg2,"$2月$3日$1年")); /* 輸出["2017-08-25?", "1234/11/21?"] 08月25日2017年 hdbh-12-12 11月21日1234年 2019/211/12 2134-12-122 */
邊界問題引用 $1.$2,... (引用的就是分組的內(nèi)容)
上一個例子用的$1,$2,$3就是引用
^$ (整個字符串用^開頭,用$結(jié)尾)
單詞的邊界 b
非單詞的邊界 B
/^d{11}$/ 手機號前瞻
正向前瞻 reg(?=assert) assert斷言
反向前瞻 reg(?!assert)
var str="Hi Hello Hew Hz Hv"; var reg=/H(?=i|z)/g; console.log(str.replace(reg,"h"));//輸出hi Hello Hew hz Hv var reg1=/H(?!e)/g; console.log(str.replace(reg1,"h"));//輸出hi Hello Hew hz hv
###正則對象的屬性
lastIndex 最后匹配的索引
reg.flags 修飾符(igm)
reg.global
reg.ignoreCase
reg.multiline
reg.source 正則里的內(nèi)容
var str="ab dbn ubd"; var reg=/b/g; console.log(reg.test(str));//輸出2 console.log(reg.lastIndex);//輸出ture console.log(reg.test(str));//輸出5 console.log(reg.lastIndex);//輸出ture console.log(reg.test(str));//輸出9 console.log(reg.lastIndex);//輸出ture console.log(reg.test(str));//輸出0 console.log(reg.lastIndex);//輸出false console.log(reg.flags) //輸出g 修飾符(igm) console.log(reg.global) //輸出ture console.log(reg.ignoreCase) //輸出false console.log(reg.multiline) //輸出false console.log(reg.source) //輸出b 正則里的內(nèi)容正則表達式的使用
test 用來查看是否存在,有則輸出ture,沒有則輸出false
exec 只找第一個
返回值:如果沒有找到匹配返回null,如果找到則返回一個數(shù)組
返回的數(shù)組有三個屬性,分別是input、index和lastIndex
complie 用來修改正則
var str="ab dbn ubd dsjh dskj"; var reg=/[a-z]+/g; console.log(reg.test(str));//輸出ture console.log(reg.exec(str));//輸出"dbn" reg.compile("[a-z]+","i"); console.log(str.search(reg));//輸出0字符串的方法
search("")//結(jié)果為>-1則有該字符串,為-1時則沒有
split("-")//"2017-8=24" 結(jié)果為["2017","8","24"]
match 返回值:如果沒有找到匹配返回null,如果找到則返回一個數(shù)組
返回的數(shù)組有三個屬性,分別是input、index和lastIndex,input包含了查找的字符串,index屬性包含了整個被查找字符串中被匹配的子字符串的位置,lastIndex屬性中包含了最后一次匹配中最后一個字符的下一個位置
replace("is","Is")//將"is"替換成"Is",只能替換1次,想替換n次,則寫n次。
文章版權歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/84924.html
摘要:之前寫過一篇天學通前端開發(fā),內(nèi)容主要講的就是前端學習路徑,今天再來寫一篇零基礎的學習路徑,希望能幫編程零基礎的前端愛好者指明方向。十框架三選一,零基礎的初學者強烈推薦,如果是后臺轉(zhuǎn)前端推薦,如果技術型前端,推薦。 之前寫過一篇26天學通前端開發(fā),內(nèi)容主要講的就是前端學習路徑,今天再來寫一篇零基礎的JavaScript學習路徑,希望能幫編程零基礎的前端愛好者指明方向。 一、開發(fā)環(huán)境和Ja...
摘要:在他的重學前端課程中提到到現(xiàn)在為止,前端工程師已經(jīng)成為研發(fā)體系中的重要崗位之一。大部分前端工程師的知識,其實都是來自于實踐和工作中零散的學習。一基礎前端工程師吃飯的家伙,深度廣度一樣都不能差。 開篇 前端開發(fā)是一個非常特殊的行業(yè),它的歷史實際上不是很長,但是知識之繁雜,技術迭代速度之快是其他技術所不能比擬的。 winter在他的《重學前端》課程中提到: 到現(xiàn)在為止,前端工程師已經(jīng)成為研...
摘要:在他的重學前端課程中提到到現(xiàn)在為止,前端工程師已經(jīng)成為研發(fā)體系中的重要崗位之一。大部分前端工程師的知識,其實都是來自于實踐和工作中零散的學習。一基礎前端工程師吃飯的家伙,深度廣度一樣都不能差。開篇 前端開發(fā)是一個非常特殊的行業(yè),它的歷史實際上不是很長,但是知識之繁雜,技術迭代速度之快是其他技術所不能比擬的。 winter在他的《重學前端》課程中提到: 到現(xiàn)在為止,前端工程師已經(jīng)成為研發(fā)體系...
閱讀 1961·2021-09-09 09:33
閱讀 1107·2019-08-30 15:43
閱讀 2646·2019-08-30 13:45
閱讀 3297·2019-08-29 11:00
閱讀 845·2019-08-26 14:01
閱讀 3559·2019-08-26 13:24
閱讀 471·2019-08-26 11:56
閱讀 2683·2019-08-26 10:27