JS正則表達式入門篇

正則表達式,又稱規(guī)則表達式镀迂。(英語:Regular Expression内狗,在代碼中常簡寫為regex怪嫌、regexp或RE),計算機科學的一個概念柳沙。正則表通常被用來檢索岩灭、替換那些符合某個模式(規(guī)則)的文本,即只對字符串操作赂鲤。

基本寫法:

var reg = /a/;
var reg = new RegExp('a');    //當正則需要傳參噪径,則只能用 new RegExp(paramName);

正則默認匹配規(guī)則:正則匹配成功就會結束,不會繼續(xù)匹配

//i: 不區(qū)分大小寫
寫法:var reg = /B/i,  var reg = new RegExp('B', 'i')
//g: 全局匹配数初,
寫法:var reg = /B/g,  var reg = new RegExp('B', 'g')

正則表達式常用方法:

test: 正則去匹配字符串找爱,如果匹配成功就返回真,失敗就返回假
   寫法: reg.test(str)
    eg: /\d/g.test('123')   // true
search: 正則去匹配字符串泡孩,如果匹配成功车摄,就返回匹配成功的位置,如果匹配失敗就返回-1
  寫法: str.search(reg)
    eg: 'abcdef'.search(/c/)   // 2
match: 正則去匹配字符串,如果匹配成功吮播,就返回匹配成功的數組变屁,如果匹配不成功,就返回null
  寫法: str.match(reg)
   eg: 'ab1cd12ddf456df'.match(/\d/g)  // 返回: [1, 12, 456]

  注意: 當match不加g的時候薄料,可以獲取到子項的集合
   eg: 'abc'.match(/(a)(b)(c)/)        // 返回:[abc, a, b, c]
replace: 正則去匹配字符串敞贡,匹配成功的字符去替換成新的字符串
   寫法: str.replace(reg, replace) // replace:第二個參數,可以是字符串摄职,也可以是一個回調函數

   eg: 
    str.replace(reg, 'aa')
   eg: 
    var str = '2017-01-12'
    var reg = /(/d)(-)/g
    str.replace(reg, function($0, $1, $2) {
        // 第一個參數:$0(母親)誊役,
        // 第二個參數:$1(第一個孩子),
        // 第三個參數:$2(第二個孩子)
        console.log($0);  // 2017-
        console.log($1);  // 2017
        console.log($2);  // -
    })

正則表達式語法:

轉義字符:
.(點)---任意字符
\.: 真正的點
\s: 任何不可見字符谷市,包括空格蛔垢、制表符、換頁符等等迫悠。等價于[ \f\n\r\t\v]鹏漆。
\S: 非不可見字符
\d: 數字
\D: 非數字
\w: 字符 (字母,數字创泄,下劃線)
\W: 非字符
\b: 獨立的部分(起始艺玲, 結束, 空格) // 'onetwo'.test(/\bone/)  —> true;   'onetwo'.test(/one\b/) —> false
\B: 非獨立的部分
\1: 重復的子項  //\1重復的第一個子項鞠抑,\2重復的第二個子項
     eg:'abca'.test(/(a)bc\1/),  '<li></li>'.test(/<(\w)></\1>/)
     eg:  查找重復字符串的字符和個數
         var reg = /(\w)\1+/
         var str = 'assssdfdbdsssdfdfsdssdsdssss'
         var arr = str.split('').sort()
         var index = 0, value=''
         arr.replace(reg, function ($0, $1) {
           if ($0.length > index) {
              index = $0.length
              value = $1
           }
        })
量詞:匹配不確定的個數
{a, b}: 最少出現a次饭聚,最多出現b次  {4,7}:<=4&&>=7,  {4,}:最少4次,{4}:正好4次
+: 相當于{1,}, 至少出現一次>=1次 
?: 相當于{0, 1}搁拙,0-1次
*: 相當于{0,},至少出現0次

^:正則的最開始位置秒梳,就代表起始的意思
$:正則的最后位置,就代表結束的意思

eg:匹配QQ號箕速,5~12位酪碘,不能是0開頭
     var reg = /^[1,9]\d{4,-11}$/
      '0123434aa'.test(reg)  —>false

eg: 替換字符串的前后空格
      var reg = /^\s|\s$/
     ' hello '.replace(reg, '')
匹配子項:
(): 小括號,分組操作盐茎,
    // 把正則的整體叫做(母親)
    // 然后把左邊第一個小括號里的正則兴垦,叫做這個第一個子項(母親的第一個孩子),第二個小括號就是第二個孩子
[]: 一組相似的元素[abc], [a-z0-9],[^>]
    // 'ab'.test(/[abc]/)

|: 或者
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末字柠,一起剝皮案震驚了整個濱河市滑进,隨后出現的幾起案子,更是在濱河造成了極大的恐慌募谎,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,919評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件阴汇,死亡現場離奇詭異数冬,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 92,567評論 3 392
  • 文/潘曉璐 我一進店門拐纱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來铜异,“玉大人,你說我怎么就攤上這事秸架∽嶙” “怎么了?”我有些...
    開封第一講書人閱讀 163,316評論 0 353
  • 文/不壞的土叔 我叫張陵东抹,是天一觀的道長蚂子。 經常有香客問我,道長缭黔,這世上最難降的妖魔是什么食茎? 我笑而不...
    開封第一講書人閱讀 58,294評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮馏谨,結果婚禮上别渔,老公的妹妹穿的比我還像新娘。我一直安慰自己惧互,他們只是感情好哎媚,可當我...
    茶點故事閱讀 67,318評論 6 390
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著喊儡,像睡著了一般拨与。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上管宵,一...
    開封第一講書人閱讀 51,245評論 1 299
  • 那天截珍,我揣著相機與錄音,去河邊找鬼箩朴。 笑死岗喉,一個胖子當著我的面吹牛,可吹牛的內容都是我干的炸庞。 我是一名探鬼主播钱床,決...
    沈念sama閱讀 40,120評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼埠居!你這毒婦竟也來了查牌?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 38,964評論 0 275
  • 序言:老撾萬榮一對情侶失蹤滥壕,失蹤者是張志新(化名)和其女友劉穎纸颜,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體绎橘,經...
    沈念sama閱讀 45,376評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡胁孙,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,592評論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片涮较。...
    茶點故事閱讀 39,764評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡稠鼻,死狀恐怖,靈堂內的尸體忽然破棺而出狂票,到底是詐尸還是另有隱情候齿,我是刑警寧澤,帶...
    沈念sama閱讀 35,460評論 5 344
  • 正文 年R本政府宣布闺属,位于F島的核電站慌盯,受9級特大地震影響,放射性物質發(fā)生泄漏屋剑。R本人自食惡果不足惜润匙,卻給世界環(huán)境...
    茶點故事閱讀 41,070評論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望唉匾。 院中可真熱鬧孕讳,春花似錦、人聲如沸巍膘。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,697評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽峡懈。三九已至璃饱,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間肪康,已是汗流浹背荚恶。 一陣腳步聲響...
    開封第一講書人閱讀 32,846評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留磷支,地道東北人谒撼。 一個月前我還...
    沈念sama閱讀 47,819評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像雾狈,于是被迫代替她去往敵國和親廓潜。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,665評論 2 354

推薦閱讀更多精彩內容

  • 正則表達式又稱為正規(guī)表示法善榛、規(guī)則表達式辩蛋、常規(guī)表示法,英語為Regular Expression移盆,常簡寫為regex...
    pro648閱讀 5,401評論 1 11
  • 1.正則表達式概述 正則表達式悼院,又稱正規(guī)表示式、正規(guī)表示法咒循、正規(guī)表達式据途、規(guī)則表達式钮呀、常規(guī)表示法(英語:Regula...
    TENG書閱讀 844評論 0 1
  • 簡介 正則表達式,又稱正規(guī)表示法昨凡、正規(guī)表達式、規(guī)則表達式蚁署、常規(guī)表示法(英語:Regular Expression便脊,...
    天青色等煙雨閱讀 787評論 0 7
  • 正則表達式(Regular Expression)在代碼中常常簡寫為regex。正則表達式通常被用來檢索光戈、替換那些...
    追夢人_奮斗青年閱讀 8,389評論 4 29
  • 今天在值班哪痰,是比較繁忙的一天,眼看都21:00了久妆,我還沒開始寫字晌杰,心里不由得有點著急,不管怎樣見縫插針還是寫一...
    九尾貂閱讀 391評論 4 2