亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Regex > 正文

JavaScript正則表達式上之基本語法(推薦)

2020-03-16 20:59:01
字體:
來源:轉載
供稿:網友
一個正則表達式就是由普通字符(例如字符 a 到 z)以及特殊字符(稱為元字符)組成的文字模式。這篇文章主要介紹了JavaScript正則表達式上之基本語法(推薦)的相關資料,需要的朋友可以參考下
 

正則表達式語法 

一個正則表達式就是由普通字符(例如字符 a 到 z)以及特殊字符(稱為元字符)組成的文字模式。該模式描述在查找文字主體時待匹配的一個或多個字符串。正則表達式作為一個模板,將某個字符模式與所搜索的字符串進行匹配。

定義

JavaScript種正則表達式有兩種定義方式,定義一個匹配類似 <%XXX%> 的字符串

1. 構造函數

 

復制代碼代碼如下:

 

var reg=new RegExp('<%[^%>]+%>','g');

 

 

2. 字面量

 

復制代碼代碼如下:

 

var reg=/<%[^%>]%>/g;

 

 

g:global,全文搜索,默認搜索到第一個結果接停止i:ingore case,忽略大小寫,默認大小寫敏感m:multiple lines,多行搜索(更改^ 和$的含義,使它們分別在任意一行對待行首和行尾匹配,而不僅僅在整個字符串的開頭和結尾匹配)

元字符

正則表達式讓人望而卻步以一個重要原因就是其轉義字符太多了,組合非常之多,但是正則表達式的元字符(在正則表達式中具有特殊意義的專用字符,可以用來規定其前導字符)并不多

元字符:( [ { / ^ $ | ) ? * + .

并不是每個元字符都有其特定意義,在不同的組合中元字符有不同的意義,分類看一下

JavaScript,正則表達式,語法

字符類

一般情況下正則表達式一個字符(轉義字符算一個)對應字符串一個字符,表達式 ab/t 的含義是

JavaScript,正則表達式,語法

但是我們可以使用元字符[]來構建一個簡單的類,所謂類是指,符合某些特征的對象,是一個泛指,而不是特指某個字符了,我們可以使用表達式 [abc] 把字符a或b或c歸為一類,表達式可以匹配這類的字符

JavaScript,正則表達式,語法

元字符[]組合可以創建一個類,我們還可以使用元字符^創建反向類/負向類,反向類的意思是不屬于XXX類的內容,表達式 [^abc] 表示不是字符a或b或c的內容

JavaScript,正則表達式,語法

范圍類

按照上面的說明要是我們希望匹配單個數字那么表達式是這樣的

[0123456789]

如果是字母那么。。。,好麻煩,正則表達式還提供了范圍類,我們可以使用 x-y來連接兩個字符表示從x到y的任意字符,這是個閉區間,也就是說包含x和ybenshen,這樣匹配小寫字母就很簡單了

[a-z]

JavaScript,正則表達式,語法

要是想匹配所有字母呢?在[]組成的類內部是可以連寫的,我們還可以這樣寫[a-zA-Z]

JavaScript,正則表達式,語法

預定義類

剛才使用正則我們創建了幾個類,來表示數字,字母等,但這樣寫也很是麻煩,正則表達式為我們提供了幾個常用的預定義類來匹配常見的字符

JavaScript,正則表達式,語法

有了這些預定義類,寫一些正則就很方便了,比如我們希望匹配一個 ab+數字+任意字符 的字符串,就可以這樣寫了 ab/d.

JavaScript,正則表達式,語法

邊界

正則表達式還提供了幾個常用的邊界匹配字符

JavaScript,正則表達式,語法

看個不負責任的郵箱正則匹配(切勿模仿,小括號后面會講到)/w+@/w+/.(com)$

JavaScript,正則表達式,語法

量詞

之前我們介紹的方法都是一一匹配的,如果我們希望匹配一個連續出現20次數字的字符串難道我們需要寫成這樣

/d/d/d/d...

為此正則表達式引入了一些量詞

JavaScript,正則表達式,語法

看幾個使用量詞的例子

/w+/b Byron 匹配 單詞+邊界+Byron

 

復制代碼代碼如下:

 

(//w+/b Byron/).test('Hi Byron'); //true(//w+/b Byron/).test('Welcome Byron'); //true(//w+/b Byron/).test('HiByron'); //false

 

 

/d+/./d{1,3} 匹配三位小數的數字

JavaScript,正則表達式,語法

貪婪模式與非貪婪模式

看了上面介紹的量詞,也許愛思考的同學會想到關于匹配原則的一些問題,比如{3,5}這個量詞,要是在句子種出現了十次,那么他是每次匹配三個還是五個,反正3、4、5都滿足3~5的條件,量詞在默認下是盡可能多的匹配的,也就是大家常說的貪婪模式

 

復制代碼代碼如下:

 

'123456789'.match(//d{3,5}/g); //["12345", "6789"]

 

 

既然有貪婪模式,那么肯定會有非貪婪模式,讓正則表達式盡可能少的匹配,也就是說一旦成功匹配不不再繼續嘗試,做法很簡單,在量詞后加上 ? 即可

 

復制代碼代碼如下:

 

'123456789'.match(//d{3,5}?/g); //["123", "456", "789"]

 

 

分組

有時候我們希望使用量詞的時候匹配多個字符,而不是像上面例子只是匹配一個,比如希望匹配Byron出現20次的字符串,我們如果寫成Byron{20} 的話匹配的是Byro+n出現20次,怎么把Byron作為一個整體呢?使用()就可以達到次目的,我們稱為分組

(Byron){20}

JavaScript,正則表達式,語法

如果希望匹配Byron或Casper出現20次該怎么辦呢?可以使用字符 | 達到或的功效

(Byron|Casper){20}

JavaScript,正則表達式,語法

我們看到圖中有個#1的東東,那是什么?使用分組的正則表達式會把匹配項也放到分組中,默認就是按數字編號分發的,各異根據編號獲得捕獲的分組內容,這個在一些希望具體操作第幾個匹配項的函數中很有用

(Byron).(ok)

JavaScript,正則表達式,語法

如果有分組嵌套的情況,外面的組的編號靠前

((^|%>)[^/t]*)

JavaScript,正則表達式,語法

有時候我們不希望捕獲某些分組,只需要在分組內加上 ?: 就可以了,著并不意味著該分組內容不屬于正則表達式,只是不會給這個分組加編號了而已

(?:Byron).(ok)

JavaScript,正則表達式,語法

其實在C#等語言中分組還可以起名字,不過JavaScript不支持

前瞻表達式

JavaScript,正則表達式,語法

說的有些抽象,看個例子good(?=Byron)

JavaScript,正則表達式,語法

 

復制代碼代碼如下:

 

(/good(?=Byron)/).exec('goodByron123'); //['good'](/good(?=Byron)/).exec('goodCasper123'); //null(/bad(?=Byron)/).exec('goodCasper123');//null

 

 

通過上面例子可以看出 exp1(?=exp2) 表達式會匹配exp1表達式,但只有其后面內容是exp2的時候才會匹配,也就是兩個條件,exp1(?!exp2) 比較類似

good(?!Byron)

JavaScript,正則表達式,語法

 

復制代碼代碼如下:

 

(/good(?!Byron)/).exec('goodByron123'); //null(/good(?!Byron)/).exec('goodCasper123'); //['good'](/bad(?!Byron)/).exec('goodCasper123');//null

 

 

以上所述是小編給大家介紹的JavaScript正則表達式上之基本語法(推薦)的相關知識,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VEVB武林網網站的支持!



注:相關教程知識閱讀請移步到正則表達式頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲成人久久久| 欧美午夜激情在线| 日韩一区二区久久久| 国产精品美女视频网站| 亚洲理论在线a中文字幕| 亚洲午夜精品久久久久久久久久久久| 超碰日本道色综合久久综合| 欧美乱大交xxxxx| 国产成人午夜视频网址| 色青青草原桃花久久综合| 九九热这里只有精品免费看| 久久777国产线看观看精品| 久久久影视精品| 亚洲精品美女在线观看播放| 欧美成人免费网| 欧美巨大黑人极品精男| 情事1991在线| 97超碰国产精品女人人人爽| 2019亚洲日韩新视频| 欧洲成人性视频| 欧美黄色性视频| 国产精品亚洲视频在线观看| 亚洲日本中文字幕免费在线不卡| 亚洲美女免费精品视频在线观看| 亚洲欧美国产精品专区久久| 国产精品免费视频久久久| 精品国产一区久久久| 亚洲人午夜色婷婷| 午夜精品久久久久久久白皮肤| 国产一区二区在线播放| 亚洲毛茸茸少妇高潮呻吟| 久久久久久久影院| 97av在线视频免费播放| 91成人在线观看国产| 精品久久久久久久中文字幕| 亚洲精品98久久久久久中文字幕| 91在线|亚洲| 亚洲日韩第一页| 日韩成人在线播放| 有码中文亚洲精品| 国产69精品久久久久99| 亚洲tv在线观看| 亚洲精品suv精品一区二区| 久久久久久久一区二区| 欧美国产第一页| 亚洲精品国产免费| 97久久精品在线| 这里只有精品在线播放| 亚洲欧洲在线播放| 欧美成人精品在线播放| 亚洲精品美女久久久久| 午夜精品久久久久久99热| 欧美俄罗斯性视频| 亚洲黄一区二区| 国产99视频在线观看| 欧美成人精品不卡视频在线观看| 久精品免费视频| 国产欧美日韩中文| 亚洲一区二区少妇| 日韩视频欧美视频| 26uuu另类亚洲欧美日本一| 色偷偷偷综合中文字幕;dd| 成人激情综合网| 亚洲欧美在线看| 91理论片午午论夜理片久久| 色综合亚洲精品激情狠狠| 日本韩国在线不卡| 亚洲午夜色婷婷在线| 欧美日韩国产一区在线| 综合激情国产一区| 亚洲精品中文字幕av| 久久国产精品久久久久久久久久| 欧美精品在线极品| 久久视频免费在线播放| 欧美野外猛男的大粗鳮| 一区二区在线免费视频| zzijzzij亚洲日本成熟少妇| 91福利视频在线观看| 九九视频直播综合网| 日本欧美一级片| 成人做爰www免费看视频网站| 欧美裸体男粗大视频在线观看| 久久久精品视频成人| 国产精品www色诱视频| 欧美丰满少妇xxxxx做受| 日韩高清电影免费观看完整| 欧日韩不卡在线视频| 97久久久久久| 国产精品偷伦一区二区| 日本中文字幕成人| 国产午夜精品久久久| 国产精品av免费在线观看| 亚洲成在人线av| 亚洲国产欧美日韩精品| 日韩网站免费观看| 91超碰caoporn97人人| 国产免费观看久久黄| 亚洲国产精品久久久| 亚洲a级在线观看| 91色琪琪电影亚洲精品久久| 亚洲成av人片在线观看香蕉| 亚洲激情视频在线观看| 成人日韩av在线| 国产精品情侣自拍| 欧美久久精品一级黑人c片| 久久不射热爱视频精品| 国产综合香蕉五月婷在线| 97久久伊人激情网| 亚洲欧美自拍一区| 91丨九色丨国产在线| 欧美激情xxxxx| 亚洲色图色老头| 欧洲日韩成人av| 国产主播欧美精品| 日韩av片电影专区| 久久视频这里只有精品| 91老司机精品视频| 国产精品国产三级国产aⅴ浪潮| 伊人久久五月天| 亚洲永久免费观看| 国产美女主播一区| 国产一区二区丝袜高跟鞋图片| 国产一区私人高清影院| 欧美日韩亚洲视频| 91精品视频在线看| 久久伊人91精品综合网站| 国产自摸综合网| 亚洲国产成人久久综合| 亚洲free性xxxx护士白浆| 欧美日韩国产成人| 最新91在线视频| 国产欧美精品在线| 亚洲欧美激情另类校园| 欧美成人手机在线| 久久久久久噜噜噜久久久精品| 在线播放国产一区中文字幕剧情欧美| 韩剧1988在线观看免费完整版| 欧美成人激情在线| 日韩精品在线观看一区| 亚洲欧美一区二区三区四区| 亚洲视频在线观看网站| 亚洲男人第一av网站| 欧美做受高潮电影o| 久久久精品国产一区二区| 精品福利在线看| 亚洲综合精品伊人久久| 精品呦交小u女在线| 黑人狂躁日本妞一区二区三区| 激情成人在线视频| 国产精品久久久av久久久| 亚洲国产成人av在线| 91九色综合久久| 欧美精品制服第一页| 亚洲自拍偷拍色片视频| 亚洲第一视频网站| 日韩久久午夜影院| 中文字幕欧美日韩| 国产成人极品视频| 国产精品日韩专区| 一区二区三区天堂av| 日韩激情视频在线播放| 欧美一级bbbbb性bbbb喷潮片| 日韩在线视频免费观看高清中文| 成人黄色在线免费|