javascript正則表達式

正則表達式隘庄,又稱規(guī)則表達式夯到,英語:RegularExpression,在代碼中常簡寫為regex,regexp,RE
作用:快速查找匹配的字符串內(nèi)容

創(chuàng)建正則表達式

1. var reg = new RegExp();

var str = "你NBEST";
var reg = new RegExp('NB');
console.log(reg.test(str)); //true

2.var reg = /N/;

console.log(reg.test(str)); //true
正則常用函數(shù)

1.test()
判斷字符串中是否有符合正則規(guī)則的內(nèi)容,返回值是bool類型
2.exec()
查找到符合正則表達式的字符串所在的源字符串的位置下標

字符串常用的函數(shù)

replace,match,search

match與exec返回值類似摆碉,歸屬不同

正則元字符

1.全局查找g

g:從頭查到尾(影響replace, exec)

var str = "hello";
var reg = /l/;
var val = str.replace(reg,'m');
console.log(val)  //hemlo
//全局查找
    var str = "hello";
    var reg = /l/g;
    var val = str.replace(reg,'m');
    console.log(val)  //hemmo

獲得字符串所有空格個數(shù)

        var str = "你 好 嗎 ?";
    var reg = / /g;
    var val = reg.exec(str);
    var val1 = reg.exec(str);
    console.log(val)
    console.log(val1)
image.png

    var str = "你 好 嗎 ?";
    var reg = / /g;
    var num = 0;
    while(reg.exec(str)){
        num++;
    }
    console.log(num) //3
2.不區(qū)分大小寫 i

i和g可以共存

//不區(qū)分大小寫
    var str = "hello";
    var reg = /l/ig;
    var val = str.replace(reg,'你好');
    console.log(val);
3.任意字符 .
    //任意字符
    var str = "helloele"
    var reg = /e./g;    //查找2個字符(連起來的2個字符)翎迁,一個是e,另一個任意
    console.log(str.replace(reg,'好'));   //h好lo好e
4. 0個或者1個字符 : 净薛?
汪榔?修飾的是前一個字符:前一個字符存在或者不存在
        var str = "hello";
    var reg = /e?/g;
    var val = str.replace(reg,'m');
    console.log(val);  //mhmmlmlmom

從h之前開始查找,肃拜,e與h之間痴腌,字符與字符之間有一塊區(qū)域(內(nèi)存問題)

5. 代表0個或者n個 : *

*同樣是修飾前一個字符,存在0次或者n次

燃领?士聪,*一般不做替換,做查找
6代表1個或者N個 :+

+修飾前一個字符

var str = 'hello';
var reg = /e.+/g;    //e后面跟0個或者多個.
console.log(str.replace(reg,'m'));   //hm
7.重復的范圍:{}

修飾{}前面的字符
{3}代表前面的字符必須有連續(xù)的3個
{1,3}代表前面的字符最少有一個猛蔽,最多有3個
{2戚嗅,}代表最少2個,最多n個

var str = "heeeello";
var reg = /e{3}/g;
//var reg = /e{1,3}/g;   // hmmllo
/var reg = /e{2,3}/g;  //hmello   先判斷最大的數(shù)量枢舶,再判斷最小的
console.log(str.replace(reg,'m'))  //hmello
8.或規(guī)則: |

var reg = /h|l/g

9.或規(guī)則:[]

[]里的內(nèi)容不允許有空格懦胞,逗號
空格,逗號會被當成或的一種
var reg = /[hel ]/g

var reg = /[a-z]/g   //a到z的所有小寫
var reg = /[a-zA-Z]/g    //大小寫
var reg = /[0-9]/g 
漢字的正則

var reg = /[\u4e00-\u9fa5]//g //漢字編碼凉泄。包含了所有的漢字

10.以什么開頭:^

var reg = /^he/g; //以he開頭

11.以什么結(jié)尾:$

var reg = /o$/g; //以o結(jié)尾

案例
判斷一個字符串是否是6位長度的數(shù)字
/^[0-9]{6}$/g //加上開頭和結(jié)尾

12.取反規(guī)則 :^

取反規(guī)則要和[]一起用

//去掉非數(shù)字的字符
var str = "123helo%$";
var reg = /[^0-9]/g;
console.log(str.replace(reg,'9'))   //123999999
13.小括號規(guī)則

var reg = /(he){3}/g; //he整體出現(xiàn)3次躏尉,{3}修飾的是()括起來的整體

總結(jié)
  • 修飾整個正則表達式的內(nèi)容,g和i
  • 修飾前一個或者前一個小括號括起來的內(nèi)容后众,胀糜?,+蒂誉,*教藻,{}
  • 其他: .右锨,|括堤,[],^,$悄窃, 取反讥电, ()

正則需要多練習

轉(zhuǎn)義字符

特點:以“\”開頭
\n,\d,\w
\d 等價于 [0-9]
\D : [^0-9]
\w : [^A-Za-z0-9_]

練習題

1.連續(xù)2個相同的數(shù)字
2.連續(xù)3個或3個以上 相同的 字符
3.正整數(shù)
4.負整數(shù)
5.整數(shù)
6.正浮點數(shù)
7.負浮點數(shù)
8.浮點數(shù)

參考:
正則表達式練習(js)
正則\1\2和\1的理解

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末轧抗,一起剝皮案震驚了整個濱河市恩敌,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌横媚,老刑警劉巖纠炮,帶你破解...
    沈念sama閱讀 217,826評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異灯蝴,居然都是意外死亡抗碰,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評論 3 395
  • 文/潘曉璐 我一進店門绽乔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來弧蝇,“玉大人,你說我怎么就攤上這事折砸】戳疲” “怎么了?”我有些...
    開封第一講書人閱讀 164,234評論 0 354
  • 文/不壞的土叔 我叫張陵睦授,是天一觀的道長两芳。 經(jīng)常有香客問我,道長去枷,這世上最難降的妖魔是什么怖辆? 我笑而不...
    開封第一講書人閱讀 58,562評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮删顶,結(jié)果婚禮上竖螃,老公的妹妹穿的比我還像新娘。我一直安慰自己逗余,他們只是感情好特咆,可當我...
    茶點故事閱讀 67,611評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著录粱,像睡著了一般腻格。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上啥繁,一...
    開封第一講書人閱讀 51,482評論 1 302
  • 那天菜职,我揣著相機與錄音,去河邊找鬼旗闽。 笑死酬核,一個胖子當著我的面吹牛蜜另,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播愁茁,決...
    沈念sama閱讀 40,271評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼蚕钦,長吁一口氣:“原來是場噩夢啊……” “哼亭病!你這毒婦竟也來了鹅很?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,166評論 0 276
  • 序言:老撾萬榮一對情侶失蹤罪帖,失蹤者是張志新(化名)和其女友劉穎促煮,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體整袁,經(jīng)...
    沈念sama閱讀 45,608評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡菠齿,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,814評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了坐昙。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片绳匀。...
    茶點故事閱讀 39,926評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖炸客,靈堂內(nèi)的尸體忽然破棺而出疾棵,到底是詐尸還是另有隱情,我是刑警寧澤痹仙,帶...
    沈念sama閱讀 35,644評論 5 346
  • 正文 年R本政府宣布是尔,位于F島的核電站,受9級特大地震影響开仰,放射性物質(zhì)發(fā)生泄漏拟枚。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,249評論 3 329
  • 文/蒙蒙 一众弓、第九天 我趴在偏房一處隱蔽的房頂上張望恩溅。 院中可真熱鬧,春花似錦谓娃、人聲如沸暴匠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,866評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽每窖。三九已至,卻和暖如春弦悉,著一層夾襖步出監(jiān)牢的瞬間窒典,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,991評論 1 269
  • 我被黑心中介騙來泰國打工稽莉, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留瀑志,地道東北人。 一個月前我還...
    沈念sama閱讀 48,063評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像劈猪,于是被迫代替她去往敵國和親昧甘。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,871評論 2 354

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