Javascript正則表達(dá)式學(xué)習(xí)筆記

一、什么是正則姻采?

正則就是規(guī)則,一種能夠讓計(jì)算機(jī)讀懂的規(guī)則。正則最初的概念是由Unix的sed慨亲、grep等命令普及的婚瓜,一個(gè)正則表達(dá)式是一個(gè)pattern(模式),它通常用來(lái)匹配符合某種規(guī)則的字符串刑棵。
舉個(gè)例子巴刻,小B要辦一個(gè)酒會(huì),但是參加酒會(huì)的人必須符合以下幾個(gè)規(guī)則蛉签,1胡陪、年齡在18-25歲,2碍舍、熱愛(ài)生活和游戲柠座。來(lái)參加酒會(huì)的人必須要滿足這兩個(gè)條件,這兩個(gè)規(guī)則就相當(dāng)于一個(gè)正則表達(dá)式片橡,符合了這個(gè)正則表達(dá)式就等于說(shuō)妈经,ok,你被選中了捧书,就是你了吹泡。

二、正則的寫法

全稱RegExp: var re = new RegExp();
簡(jiǎn)寫:var re = //; //盡量不要為空

三经瓷、正則的規(guī)則

1爆哑、當(dāng)正則需要傳參的時(shí)候,一定要使用全稱的寫法
2舆吮、在引號(hào)內(nèi)揭朝,如果要輸出特殊字符,要多加一個(gè)\

var s = 'asd';
var re = new RegExp('\\w');
console.log(re.test(s))  // true

var re1 = new RegExp('\w');
console.log(re1.test(s))  // false

var re2 = /\w/;
console.log(re2.test(s))  // true

3歪泳、正則默認(rèn)區(qū)分大小寫萝勤,若不區(qū)分大小寫,則應(yīng)在正則最后加上小寫" i "

eg:
var re = /\d/i;
var re = new RegExp('\\d','i');

4呐伞、正則默認(rèn)匹配成功就結(jié)束敌卓,不會(huì)繼續(xù)匹配,若要全部查找伶氢,要加標(biāo)識(shí)g(全局匹配

eg:
var re = /\d/g;
var re = new RegExp('\\d','g');
四趟径、方法
1、test:正則去匹配字符串癣防,匹配成功返回true蜗巧,失敗false

寫法:正則表達(dá)式.test(字符串)

var str = 'test'
var re = /\w/; // \w代表字符,有字符就能夠匹配成功蕾盯,當(dāng)前匹配到了t
console.log(re.test(str))  // true
2幕屹、search:正則去匹配字符串,匹配成功返回位置,失敗返-1

寫法:字符串.search(正則)

var str = 'search';
var re = /a/;
console.log(str.search(re))  // 2
3望拖、match:正則去匹配字符串渺尘,匹配成功返成功的數(shù)組,失敗返null

寫法:字符串.match(正則)

var str = 'asdaf7a8saxahsda9duasxa3';
var re = /\d/g;
console.log(str.match(re))  // [ '7', '8', '9', '3' ]
4说敏、replace:正則去匹配字符串鸥跟,匹配成功的字符去替換新的字符串

寫法:字符串.replace(正則,新的字符)
第二個(gè)參數(shù)可以是字符串盔沫,也可以是回調(diào)函數(shù)

str.replace(re医咨,function(s){
   函數(shù)的第一個(gè)參數(shù)就是匹配成功的字符
})
五、匹配子項(xiàng)

小括號(hào)(): 除了匹配子項(xiàng)的意思架诞,還有分組的意思

var str = '2017-10-10';
var re = /(\d-)+/g;
str.replace(re, ($0) => {  // $0表示當(dāng)前匹配到的元素
    console.log($0)  //依次打印 7-  0-
})

正則的整體叫做母親拟淮,把左邊第一個(gè)小括號(hào)里面的正則,叫做這個(gè)第一個(gè)子項(xiàng)(母親的第一個(gè)孩子侈贷,第二個(gè)小括號(hào)就是第二個(gè)孩子)
整體:re = /(\d+)(-)/g;

var str = '2017-10-10';
var re = /(\d+)(-)/g;
str.replace(re, ($0, $1, $2) => {  // $0表示當(dāng)前匹配到的元素
    // 第一個(gè)參數(shù)$0:母親惩歉,即2017-或者10-
    // 第二個(gè)參數(shù)$1:第一個(gè)子項(xiàng),即2017或者10
    // 第三個(gè)參數(shù)$2:第二個(gè)子項(xiàng)俏蛮,即-
    console.log($0, $1, $2)  //依次打印2017-  2017  -  和 10-  10  -
})
六撑蚌、字符類:一組相似的元素

[]中的整體代表一個(gè)字符

var str = 'abdc'
var re = /a[bef]d/; 
console.log(re.test(str))  // true

排除:^如果寫在[]里面的話,代表排除的意思
范圍:[a-d] a到d這個(gè)范圍

var str = 'abdc'
var re = /a[a-z0-9A-Z]d/; 
console.log(re.test(str))  // true
七搏屑、常見(jiàn)轉(zhuǎn)義字符

. 任意字符
. 真正的點(diǎn)
\n 換行
\r 制表
\t 回車
\s 空格
\S 非空格
\d 數(shù)字
\D非數(shù)字
\w 字符
\W 非字符
\b 獨(dú)立的部分(起始争涌,結(jié)束,空格)
\B 非獨(dú)立的部分
字符:字母辣恋、數(shù)字亮垫、下劃線三類都稱為字符
\1 重復(fù)的第一個(gè)子項(xiàng) var re = /(a)(b)(c)/1/2/; // /1代表a
\2 重復(fù)的第二個(gè)子項(xiàng) var re = /(a)(b)(c)/1/2/; // //2代表b

八、量詞:{}

{4,7} : 前面的字符最少出現(xiàn)4次伟骨,最多出現(xiàn)7次
{4,} : 最少出現(xiàn)4次
{4} : 正好出現(xiàn)4次
+ : 相當(dāng)于{1,}
? : 0次或者1次 {0,1}
* : 至少出現(xiàn)0次 {0,}

九饮潦、其他

^ : 代表正則最開(kāi)始的位置
$ : 代表正則結(jié)束的位置

var str = 'abdc'
var re = /^a.+c$/; 
console.log(re.test(str))  // true

| : 或的意思

var str = 'abdc'
var re = /^(a|e)/; 
console.log(re.test(str))  // true
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市携狭,隨后出現(xiàn)的幾起案子继蜡,更是在濱河造成了極大的恐慌,老刑警劉巖逛腿,帶你破解...
    沈念sama閱讀 217,509評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件稀并,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡单默,警方通過(guò)查閱死者的電腦和手機(jī)碘举,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)搁廓,“玉大人引颈,你說(shuō)我怎么就攤上這事耕皮。” “怎么了线欲?”我有些...
    開(kāi)封第一講書人閱讀 163,875評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵明场,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我李丰,道長(zhǎng),這世上最難降的妖魔是什么逼泣? 我笑而不...
    開(kāi)封第一講書人閱讀 58,441評(píng)論 1 293
  • 正文 為了忘掉前任趴泌,我火速辦了婚禮,結(jié)果婚禮上拉庶,老公的妹妹穿的比我還像新娘嗜憔。我一直安慰自己,他們只是感情好氏仗,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,488評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布吉捶。 她就那樣靜靜地躺著,像睡著了一般皆尔。 火紅的嫁衣襯著肌膚如雪呐舔。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 51,365評(píng)論 1 302
  • 那天慷蠕,我揣著相機(jī)與錄音珊拼,去河邊找鬼。 笑死流炕,一個(gè)胖子當(dāng)著我的面吹牛澎现,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播每辟,決...
    沈念sama閱讀 40,190評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼剑辫,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了渠欺?” 一聲冷哼從身側(cè)響起妹蔽,我...
    開(kāi)封第一講書人閱讀 39,062評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎峻堰,沒(méi)想到半個(gè)月后讹开,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,500評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡捐名,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,706評(píng)論 3 335
  • 正文 我和宋清朗相戀三年旦万,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片镶蹋。...
    茶點(diǎn)故事閱讀 39,834評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡成艘,死狀恐怖赏半,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情淆两,我是刑警寧澤断箫,帶...
    沈念sama閱讀 35,559評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站秋冰,受9級(jí)特大地震影響仲义,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜剑勾,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,167評(píng)論 3 328
  • 文/蒙蒙 一埃撵、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧虽另,春花似錦暂刘、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,779評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至族展,卻和暖如春森缠,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背苛谷。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,912評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工辅鲸, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人腹殿。 一個(gè)月前我還...
    沈念sama閱讀 47,958評(píng)論 2 370
  • 正文 我出身青樓独悴,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親锣尉。 傳聞我的和親對(duì)象是個(gè)殘疾皇子刻炒,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,779評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容