日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

JavaScript中正则表达式学习笔记

發(fā)布時(shí)間:2023/12/19 javascript 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JavaScript中正则表达式学习笔记 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、正則表達(dá)式是什么:

  處理字符串時(shí),經(jīng)常需要處理復(fù)雜規(guī)則的字符串。正則表達(dá)式就是用于描述這些規(guī)則的工具。換句話說,就是記錄文本規(guī)則的代碼。

二、正則表達(dá)式能做什么:

  數(shù)據(jù)有效性驗(yàn)證(測(cè)試字符串匹配)如郵箱,電話號(hào)碼等

  替換文本

  提取子字符串

三、特點(diǎn):

  靈活性、邏輯性、功能性非常強(qiáng)

  可以迅速的用極簡單的方法達(dá)到字符串的復(fù)雜控制

  剛接觸的人比較晦澀難懂

四、規(guī)則

  1.普通字符

    作用:匹配與之相同的一個(gè)字符。

    字母,數(shù)字,漢字,下劃線。

  2.非打印字符

    \f:匹配一個(gè)換頁符。等價(jià)于 \x0c 和 \cL。

    \n:匹配一個(gè)換行符。等價(jià)于 \x0a 和 \cJ。

    \r:匹配一個(gè)回車符。等價(jià)于 \x0d 和 \cM。

    \t:匹配一個(gè)制表符。等價(jià)于 \x09 和 \cI。

    \v:匹配一個(gè)垂直制表符。等價(jià)于 \x0b 和 \cK。

    \s:匹配任何空白字符,包括空格、制表符、換頁符等等。等價(jià)于 [ \f\n\r\t\v]。

    \S:匹配任何非空白字符。等價(jià)于 [^ \f\n\r\t\v]。

  3.特殊字符
    作用:在正則表達(dá)式處理中,有特殊意義的字符。
  

    . (點(diǎn)):匹配除換行符以外的任意字符

    \w:匹配字符數(shù)字,等同于[A-Za-z0-9]

    \d:數(shù)字,等同于[0-9]

    \b:單詞開始或結(jié)尾。例如:“er\b”匹配"nerver"的第二個(gè)結(jié)尾處的"er",不匹配"verb"的“er”,因?yàn)椴皇且?#34;er"結(jié)尾

    ^:開始標(biāo)識(shí)。例如“^a\d”只能匹配“a1”以字母“a”開頭的字符串

    $:結(jié)束標(biāo)識(shí)。例如"\da$"只能匹配"1a"以字母"a"結(jié)尾的字符串

    *:匹配字符零次或多次,等同于{0,}。例如"ab*c"可以匹配"ac","abc","abbc"等在字母"a"與"c"之間包含零個(gè)或多個(gè)"b"。但不能匹配"abdc"。

    +:匹配一次或多次,等同于{1,}。

    ?:匹配零次或一次。等同于{0,1}。

  4.轉(zhuǎn)義字符

    作用:查找元字符時(shí)使用。

    例如:查找 “.” 需要用“\.”表示。“*” → “\*”?!癨” → “\\”。

  5.重復(fù)

    作用:表示同一個(gè)字符重復(fù)的次數(shù)。

    “*”,“+”,“?”(見元字符解釋)

    {n}:重復(fù)n次。例如“ab{3}c”只能匹配“abbbc”。

    {n,}:重復(fù)n次或更多次。例如{1,}等同于"+"表示重復(fù)一次或更多次。

    {n,m}:重復(fù)n到m次。

  6.分支條件

    “|”兩邊任一表達(dá)式均生效。

    例如:匹配電話號(hào)碼,區(qū)號(hào)為3位或4位,號(hào)碼為7位或8位?!?\d{2}-\d{8}|0\d{3}-\d{7}”

  7.分組

    用小括號(hào)制定子表達(dá)式

    例如:匹配IP地址,(\d{1,3}\.){3}\d{1,3}。但是此方法缺點(diǎn)是可以匹配不符合IP地址規(guī)則的字符串如300.500.123.900。

    改進(jìn)以后能夠正確匹配IP地址的表達(dá)式為“((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)”

  8.后向引用

    作用:使用小括號(hào)置頂一個(gè)子表達(dá)式后,匹配這個(gè)子表達(dá)式的字符串被儲(chǔ)存,可以在表達(dá)式或其他程序中進(jìn)一步處理。

    規(guī)則:從左向右,以分組的左括號(hào)為標(biāo)識(shí),第一個(gè)出現(xiàn)的分組為1(使用“\1”表示),依次類推,最大到99。

    例如:“(\w)\1”將匹配兩個(gè)重復(fù)的字母或數(shù)字。“aabbc22344”將得到“aa”“bb”“22”“44”而不會(huì)匹配“c”與“3”。

  8.1.輔助匹配組(零寬斷言)

    作用:作為匹配條件,但不包含在匹配結(jié)果中。

    1、正聲明(?=) :括號(hào)中的模式必須出現(xiàn)在聲明右側(cè),但不作為匹配的一部分。

      例如:"[\w\#]+(?=\.net)"匹配“文字.net”形式的字符串。"C#.net,VB.net,PHP,Java,JScript.net"的結(jié)果為“C# VB JScript”。

    2、負(fù)聲明(?!):括號(hào)中的模式必須不出現(xiàn)在聲明右側(cè)

      例如:“\b\w*q(?!u)\w*\b”匹配帶q后面不是跟隨u的單詞?!皉emember aqa?bqu ’abc‘”的結(jié)果為“aqa”。

    3、反向正聲明(?<=):括號(hào)中的模式必須出現(xiàn)在聲明左側(cè),但不作為匹配的一部分 。

      例如:“(?<=\bre)\w+\b”匹配以re開頭的單詞,但re不作為返回?!皃ublic remember?string ’abc‘”的結(jié)果為“member”。

    4、反向負(fù)聲明(?<!):括號(hào)中的模式必須不出現(xiàn)在聲明左側(cè)。

      例如:“\b\w*q(?!u)\w*\b”匹配帶q后面不是跟隨u的單詞?!皉emember aqa?bqu ’abc‘”的結(jié)果為“aqa”。

五、JS正則函數(shù)match,exec,test,search,replace,split

  由于match與exec很相近容易混淆,所以先說明一下區(qū)別

  1.exec是正則表達(dá)式的方法,而不是字符串的方法,所以參數(shù)是字符串。

    例如:var reg = new RegExp("abc");

       var str = "3abc4,5abc6";

       reg.exec(str);

       結(jié)果為:“abc”。

  2.match是字符串執(zhí)行匹配正則表達(dá)式,所以參數(shù)為正則表達(dá)式。

    例如:var reg = new RegExp("abc");

       var str = "3abc4,5abc6";

       str.match(reg);

       結(jié)果為:“abc”。

暫時(shí)寫這么多,有時(shí)間繼續(xù)更新。

轉(zhuǎn)載于:https://www.cnblogs.com/MyFirstBlog/p/4775208.html

總結(jié)

以上是生活随笔為你收集整理的JavaScript中正则表达式学习笔记的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。