成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

正則表達(dá)式之小有名氣

dreamtecher / 1706人閱讀

摘要:本來(lái)想把一些預(yù)定義字符類寫(xiě)完的,轉(zhuǎn)念一想灌輸太多內(nèi)容是不利于學(xué)習(xí)的,而且那些東西也并不是很重要,只是用的時(shí)候現(xiàn)查的一些字母而已。所以留到下章再說(shuō)

在上一篇文章已經(jīng)講了如何匹配簡(jiǎn)單的字符串,如何全局搜索,以及一些特殊字母i,g,m所代表的含義
這篇文章講的內(nèi)容有點(diǎn)多最好分兩次讀,不過(guò)不用擔(dān)心很多東西并不需要你特意記住
知道有那么一回事先用先查都OK

再談^和$
之前已經(jīng)了解過(guò)1表示除a,b,c之外的字符,現(xiàn)在又要多一種用法了
/^test/  表示以test開(kāi)頭的字符 這里的^表示以...開(kāi)頭
那么$表示什么呢? 它的含義是以...結(jié)尾
/test$/ 表示以test結(jié)尾的字符
轉(zhuǎn)義
首先我們要知道并不是所有的字符都與自身等價(jià)的,比如/hello/表示我們要匹配‘hello’字符,但是如果想匹配food$并不能這么寫(xiě)/food$/,因?yàn)?有獨(dú)特的含義,就像我們上篇文章學(xué)到的[],^這幾個(gè)符號(hào)一樣。如果想要匹配"food$"這個(gè)字符串,那就需要用反斜杠進(jìn)行轉(zhuǎn)義,通俗的說(shuō)就是在特殊符號(hào)前面加上 就像這樣
/food$/ 匹配food$字符
從webpack配置學(xué)正則
我copy了一段webpack配置,只看rules中test表示的正則就可以
在正則中.也有特定的含義,所以如果把它當(dāng)字符進(jìn)行匹配的話也要進(jìn)行轉(zhuǎn)義根據(jù)上面所學(xué)到的,判斷下面代碼中的正則表達(dá)式所代表的含義,答案我已經(jīng)寫(xiě)在注釋中了
module.exports = {
  module: {
    rules: [
      { test: /.css$/, use: "css-loader" },//以.css結(jié)尾的 使用css-loader處理
      { test: /.ts$/, use: "ts-loader" }// 以.ts結(jié)尾的
    ]
  }
};
重復(fù)匹配
如果要匹配四個(gè)‘a(chǎn)’字符,我們當(dāng)然可以用/aaaa/這樣表示,如果匹配5個(gè)"a" 10個(gè)"a"呢?正則沒(méi)那么‘傻’早已為我們準(zhǔn)備了簡(jiǎn)便方法/a{4}/ 表示匹配含有連續(xù)4個(gè)"a"的字符
在重復(fù)選項(xiàng)上,正則提供了很多方式

在一個(gè)字符后面加一個(gè)"?",可以定義該字符是可選的(可以出現(xiàn)一次或者根本不出現(xiàn))

/t?est/  可以匹配 test 或者 est

如果一個(gè)字符要出現(xiàn)一次或多次(至少出現(xiàn)一次),可以使用加號(hào)"+"

/t+est/ 可以匹配test ttest tttest 而不能匹配est

如果一個(gè)字符要出現(xiàn)零次或多次,可以使用星號(hào)"" (注意與?的區(qū)別,?代表要么不出現(xiàn)要么只能出現(xiàn)一次 代表要么不出現(xiàn)要么出現(xiàn)不止一次)

/t*est/ 可以匹配test ttest tttest est

也可以在字符后面的花括號(hào)里指定一個(gè)數(shù)字來(lái)表示重復(fù)次數(shù)

/a{4}/ 匹配包含連續(xù)4個(gè)a的字符串

也可以在字符后面的花括號(hào)指定一個(gè)重復(fù)次數(shù)的區(qū)間

/a{4,10}/ 匹配任何含有連續(xù)4個(gè)至10個(gè)a的字符串

還可以在省略區(qū)間中第二個(gè)值(但是要保留逗號(hào)) 這里直接上代碼,用文字?jǐn)⑹鋈菀酌院?/p>

/a{4,}/ 如果逗號(hào)后面不寫(xiě)第二個(gè)參數(shù)那么表示匹配任何含有連續(xù)4個(gè)或多于4個(gè)a的字符串
這些重復(fù)操作符可以是貪婪的可以是非貪婪的,默認(rèn)情況它們是貪婪的
這里不用口語(yǔ)敘述,看代碼更直觀
遇到連續(xù)四個(gè)a即停止搜索
var str = "aaaabbbcaadda"
var newStr = str.replace(/a+/,"嘿")//"嘿bbbcaadda"
因?yàn)榧恿薵進(jìn)行全局匹配,我們看一看有哪些字符符合條件
開(kāi)頭的4個(gè)a
c后面的2個(gè)a
d后面的a
這就是貪婪匹配遇到成串的符合條件的字符,將匹配這個(gè)’串‘

var str = "aaaabbbcaadda"
var newStr = str.replace(/a+/g,"嘿")//"嘿bbbc嘿dd嘿"
如果后面在"+"后跟了"?"則表示進(jìn)行非貪婪匹配,具體結(jié)果請(qǐng)看注釋
var str = "aaaabbbcaadda"
var newStr = str.replace(/a+?/g,"嘿")//"嘿嘿嘿嘿bbbc嘿嘿dd嘿"
分組
上面已經(jīng)說(shuō)到可以用/t+est/這種用法,但是+只影響它前面的t,如果想讓+影響多個(gè)字符可以使用括號(hào)進(jìn)行分組
/(ab)+/ 匹配一個(gè)或多個(gè)連續(xù)出現(xiàn)的字符串"ab"
var str = "abcdababef"

var newStr = str.replace(/(ab)+/g,"嘿")//"嘿cd嘿ef"
請(qǐng)注意cd后的連續(xù)兩個(gè)ab被替換成一個(gè)嘿而不是兩個(gè)
"|"操作符
可以使用豎線表示或者
/a|b/ 匹配a或b字符

/(ab)+|(cd)+/ 匹配出現(xiàn)一次或多次的“ab” 或者“cd”
這一篇概念有點(diǎn)多,不需要一下看完,分兩次看好了。本來(lái)想把一些預(yù)定義字符類寫(xiě)完的,轉(zhuǎn)念一想灌輸太多內(nèi)容是不利于學(xué)習(xí)的,而且那些東西也并不是很重要,只是用的時(shí)候現(xiàn)查的一些字母而已。所以留到下章再說(shuō)
  • abc ?

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

    轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/93718.html

    相關(guān)文章

    • 面試--js常見(jiàn)面試題

      摘要:可以由構(gòu)造函數(shù)來(lái)訪問(wèn)到每個(gè)對(duì)象的屬性指向自身構(gòu)造函數(shù)的屬性是原型對(duì)象的屬性,指向這個(gè)原型對(duì)象所對(duì)應(yīng)的構(gòu)造函數(shù)。 引用文字 1、delete delete不可以刪除變量 只可以刪除變量上的屬性 2、有名函數(shù)被賦值為一個(gè)變量 再訪問(wèn)這個(gè) 名(有名函數(shù)的名)就會(huì)報(bào)錯(cuò) var f=function g() { return 1 } console(g()...

      yacheng 評(píng)論0 收藏0
    • JS 獲得瀏覽器類型和版本

      摘要:獲取瀏覽器類型和版本介紹完瀏覽器的信息,下面就是寫(xiě)正則來(lái)判斷了根據(jù)關(guān)系進(jìn)行判斷從關(guān)系判斷中,我們會(huì)發(fā)現(xiàn)判斷的順序很重要,原因是很多瀏覽器都是多核的。參考判斷瀏覽器的方法總結(jié)判斷瀏覽器類型及版本新增判斷瀏覽器類型的方法總結(jié)歡迎訪問(wèn)我的博客。 最近碰到了一個(gè)問(wèn)題,判斷瀏覽器的類型,我們熟知的 IE, Firefox, Opera, Safari, Chrome 五款比較有名的瀏覽器,有時(shí)候...

      Tangpj 評(píng)論0 收藏0
    • 正則達(dá)式瑞士軍刀

      摘要:瞎乎出品瞎乎第二期正則表達(dá)式之瑞士軍刀正則表達(dá)式,這是一塊硬骨頭,很難啃,但是啃著又很香。正則表達(dá)式使用單個(gè)字符串來(lái)描述匹配一系列匹配某個(gè)句法規(guī)則的字符串。 瞎乎 出品瞎乎第二期:正則表達(dá)式之瑞士軍刀 正則表達(dá)式(Regular Expression),這是一塊硬骨頭,很難啃,但是啃著又很香。 正則表達(dá)式使用單個(gè)字符串來(lái)描述、匹配一系列匹配某個(gè)句法規(guī)則的字符串。很多地方我們都需要使用正...

      Mr_houzi 評(píng)論0 收藏0
    • js謎正則達(dá)式

      摘要:用正則表達(dá)式語(yǔ)言創(chuàng)建的。匹配非數(shù)字的字符使用元字符元字符在正則表達(dá)式中有特殊含義的字符。正則表達(dá)式默認(rèn)是區(qū)別大小寫(xiě)的。正則表達(dá)式的字符串表示。若是一個(gè)正則表達(dá)式,若有標(biāo)志則替換所有匹配之處,若沒(méi)有則只替換第一個(gè)匹配之處。 前言 好久之前就說(shuō)要寫(xiě)一篇正則表達(dá)式的文章,正則表達(dá)式總是記了又忘,忘了再記,記了再忘,卒。言歸正傳,今天終于要研究一下這個(gè)謎一樣的正則表達(dá)式了。其實(shí)正則表達(dá)式并不難...

      wendux 評(píng)論0 收藏0

    發(fā)表評(píng)論

    0條評(píng)論

    閱讀需要支付1元查看
    <