成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

熟練掌握這十種字符,你的正則表達(dá)式就沒問題

liangzai_cool / 1098人閱讀

摘要:元字符代表一類字符元類字符有或者的意思。里還可以有數(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]相當(dāng)于(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}$/   手機(jī)號     


前瞻

正向前瞻 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)容  
正則表達(dá)式的使用

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次。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/84924.html

相關(guān)文章

  • 十步零基礎(chǔ)JavaScript學(xué)習(xí)路徑

    摘要:之前寫過一篇天學(xué)通前端開發(fā),內(nèi)容主要講的就是前端學(xué)習(xí)路徑,今天再來寫一篇零基礎(chǔ)的學(xué)習(xí)路徑,希望能幫編程零基礎(chǔ)的前端愛好者指明方向。十框架三選一,零基礎(chǔ)的初學(xué)者強(qiáng)烈推薦,如果是后臺轉(zhuǎn)前端推薦,如果技術(shù)型前端,推薦。 之前寫過一篇26天學(xué)通前端開發(fā),內(nèi)容主要講的就是前端學(xué)習(xí)路徑,今天再來寫一篇零基礎(chǔ)的JavaScript學(xué)習(xí)路徑,希望能幫編程零基礎(chǔ)的前端愛好者指明方向。 一、開發(fā)環(huán)境和Ja...

    incredible 評論0 收藏0
  • 正則達(dá)式

    摘要:本文內(nèi)容共正則表達(dá)式火拼系列正則表達(dá)式回溯法原理學(xué)習(xí)正則表達(dá)式,是需要懂點(diǎn)兒匹配原理的。正則表達(dá)式迷你書問世了讓幫你生成和解析參數(shù)字符串最全正則表達(dá)式總結(jié)驗證號手機(jī)號中文郵編身份證地址等是正則表達(dá)式的縮寫,作用是對字符串執(zhí)行模式匹配。 JS 的正則表達(dá)式 正則表達(dá)式 一種幾乎可以在所有的程序設(shè)計語言里和所有的計算機(jī)平臺上使用的文字處理工具。它可以用來查找特定的信息(搜索),也可以用來查...

    bang590 評論0 收藏0
  • 一名【合格】前端工程師的自檢清單

    摘要:在他的重學(xué)前端課程中提到到現(xiàn)在為止,前端工程師已經(jīng)成為研發(fā)體系中的重要崗位之一。大部分前端工程師的知識,其實(shí)都是來自于實(shí)踐和工作中零散的學(xué)習(xí)。一基礎(chǔ)前端工程師吃飯的家伙,深度廣度一樣都不能差。 開篇 前端開發(fā)是一個非常特殊的行業(yè),它的歷史實(shí)際上不是很長,但是知識之繁雜,技術(shù)迭代速度之快是其他技術(shù)所不能比擬的。 winter在他的《重學(xué)前端》課程中提到: 到現(xiàn)在為止,前端工程師已經(jīng)成為研...

    羅志環(huán) 評論0 收藏0
  • 一名【合格】前端工程師的自檢清單

    摘要:在他的重學(xué)前端課程中提到到現(xiàn)在為止,前端工程師已經(jīng)成為研發(fā)體系中的重要崗位之一。大部分前端工程師的知識,其實(shí)都是來自于實(shí)踐和工作中零散的學(xué)習(xí)。一基礎(chǔ)前端工程師吃飯的家伙,深度廣度一樣都不能差。開篇 前端開發(fā)是一個非常特殊的行業(yè),它的歷史實(shí)際上不是很長,但是知識之繁雜,技術(shù)迭代速度之快是其他技術(shù)所不能比擬的。 winter在他的《重學(xué)前端》課程中提到: 到現(xiàn)在為止,前端工程師已經(jīng)成為研發(fā)體系...

    isaced 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<