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

首頁 > 編程 > JavaScript > 正文

JavaScript中的正則表達式簡明總結

2019-11-20 20:51:43
字體:
來源:轉載
供稿:網友

一、定義正則表達式的方法

定義正則表達式的方法有兩種:構造函數定義和正則表達式直接量定義。例如:

復制代碼 代碼如下:
var reg1 = new RegExp('/d{5, 11}'); // 通過構造函數定義
var reg2 = //d{5, 12}/; // 通過直接量定義

正則表達式直接量字符
       /o:NUL字符(/u0000)
       /t:制表符(/u0009)
       /n:換行符(/u000A)
       /v:垂直制表符(/u000B)
       /f:換頁符(/u000C)
       /r:回車符(/u000D)
       /xnn:由十六進制數nn指定的拉丁字符,例如,/x0A等價于/n
       /uxxxx:由十六進制數xxxx指定的Unicode字符,例如/u0009等價于/t
       /cX:控制字符^X,例如,/cJ等價于換行符/n
正則表達式錨字符
       ^:匹配字符串的開頭,在多行檢索中,匹配一行的開頭
       $:匹配字符串的結尾,在多行檢索中,匹配一行的結尾
       /b:匹配一個單詞的邊界,簡言之,就是位于字符/w和/W之間的位置,或位于字符/w和字符串的開頭或者結尾之間的位置([/b]匹配的是退格符)
       /B:匹配非單詞邊界的位置
       (?=p):零寬正向先行斷言,要求接下來的字符都與p匹配,但不能包括匹配p的那些字符
       (?!p):零寬負向先行斷言,要求接下來的字符串不與p匹配
正則表達式的字符類
       [...]:方括號內的任意字符
       [^...]:不在方括號內的任意字符
       .:除換行符和其他Unicode行終止符之外的任意字符
       /w:任何ASCII字符組成的單詞,等價于[a-zA-Z0-9]
       /W:任何不是ASCII字符組成的單詞,等價于[^a-zA-Z0-9]
       /s:任何Unicode空白符
       /S:任何非Unicode空白符的字符,注意/w和/S不同
       /d:任何ASCII數字,等價于[0-9]
       /D:除了ASCII數字之外的任何字符,等價于[^0-9]
       [/b]:退格直接量(特例)
正則表達式的重復字符語法
       {n, m}:匹配前一項至少n次,但不能超過m次
       {n, }:匹配前一項n次或者更多次
       {n}:匹配前一項n次
       ?:匹配前一項0次或者1次,也就是說前一項是可選的,等價于{0, 1}
       +:匹配前一項1次或多次,等價于{1, }
       *:匹配前一項0次或多次,等價于{0, }
正則表達式的選擇、分組和引用字符
       |:選擇,匹配的是該符號左邊的子表達式或右邊的子表達式
       (…):組合,將幾個項組合為一個單元,這個單元可通過“*”、“+”、“?”和“|”等符號加以修飾,而且可以記住和這個組相匹配的字符串以供此后的任何使用
       (?: …):只組合,把項組合到一個單元,但是不記憶與改組相匹配的字符
       /n:和第n個分組第一次匹配的字符相匹配,組是圓括號中的子表達式(也有可能是嵌套的),組索引是從左到右的左括號數,“(?:”形式的分組不編碼
正則表達式修飾符
       i:執行不區分大小寫的匹配
       g:執行一個全局匹配,簡言之,即找到所有的匹配,而不是在找到第一個之后就停止
       m:多行匹配模式,^匹配一行的開頭和字符串的開頭,$匹配行的結尾和字符串的結尾
用于模式匹配的String方法
       search():它的參數是一個正則表達式,返回第一個與之匹配的子串的起始位置,如果沒有匹配的子串就返回-1。如果search()的參數不是正則表達式,則首先會通過RegExp構造函數將它轉換為正則表達式,search()不支持全局檢索,因為它忽略修飾符g。如:

復制代碼 代碼如下:

var s = "JavaScript".search(/script/i); // s = 4

 

       replace():它用來執行檢索與替換。接收兩個參數,第一個是正則表達式,第二個是要進行替換的字符串。正則表達式如果設置的修飾符g,則進行全局替換,否則只替換匹配的第一個子串。如果第一個參數不是正則表達式,則直接搜索該字符串,而不是將其轉換為正則表達式。如:

復制代碼 代碼如下:
var s = "JavaScript".replace(/java/gi, "Script"); // s =  Script Script

 

       match():它的參數是一個正則表達式,如果不是則通過RegExp轉換,返回的是一個由匹配結果組成的數組。如果設置了修飾符g則進行全局匹配。如:

復制代碼 代碼如下:
var d = '55 ff 33 hh 77 tt'.match(//d+/g); // d = ["55", "33", "77"]

 

       split():這個方法用以將調用它的字符串拆分為一個子串組成的數組,使用的分隔符是split()的參數,它的參數也可以使一個正則表達式。如:

復制代碼 代碼如下:
var d = '123,31,453,645'.split(','); // d = ["123", "31", "453", "645"]
var d = '21 , 123,  44,  64,  67,  3'.split(//s*,/s*/); // d = ["21", "123", "44", "64", "67", "3"]

二、RegExp對象
       每個RegExp對象都有5個屬性。屬性source是一個只讀字符串,包含正則表達式的文本。屬性global是一個只讀布爾值,用以說明這個正則表達式是否帶有修飾符g。屬性ignoreCase是一個只讀布爾值,用以說明這個正則表達式是否帶有修飾符i。屬性multiline是一個只讀布爾值,用以說明這個正則表達式是否帶有修飾符m。屬性lastIndex是一個可讀可寫的整數,如果匹配模式帶有g修飾符,這個屬性存儲整個字符串中下一次檢索的開始位置。
       RegExp對象有兩個方法。exec()的參數是一個字符串,它的功能與match()相似,exec()方法對一個指定的字符串執行一個正則表達式,也就是在一個字符串中執行匹配檢索。如果沒有找到任何匹配就返回null,找到了匹配就返回一個數組,這個數組的第一個元素包含的是與正則表達式相匹配的字符串,余下的元素是與圓括號內的子表達式相匹配的子串,不論正則表達式是否有修飾符g,都會返回一樣的數組。當調用exec()的正則表達式對象具有修飾符g時,它將把當前正則表達式對象的lastIndex屬性設置為緊挨著匹配子串的字符位置。當同一個正則表達式第二次調用exec()時,它將從lastIndex屬性所指示的字符串處開始檢索,如果exec()沒有發現任何匹配結果,它會將lastIndex重置為0。如:

復制代碼 代碼如下:
var p = /Java/g;
var text = "JavaScript is more fun than Java!"
var r;
while((r = p.exec(text)) != null) {
       console.log(r, 'lastIndex: ' + p.lastIndex);
}

       另外一個方法是test(),它的參數是一個字符串,用test()對某個字符串進行檢查,如果包含正則表達式的一個匹配結果,則返回true否則返回false。如:

復制代碼 代碼如下:
var p = /java/i;
p.test('javascript'); // true

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
成人黄色av网| 黄色一区二区在线观看| 亚洲精品小视频在线观看| 国产日韩欧美综合| 国产精品久久久久久中文字| 国产欧美日韩丝袜精品一区| 日本一区二区三区四区视频| 欧美日韩国产一中文字不卡| 欧美激情一区二区三区久久久| 不卡av在线播放| 韩国福利视频一区| 国产自产女人91一区在线观看| 日韩av快播网址| 97国产精品视频| 国内伊人久久久久久网站视频| 日韩中文字幕第一页| 亚洲国产日韩欧美在线图片| 亚洲一区999| 国产成人久久精品| 亚洲欧洲一区二区三区在线观看| 日韩亚洲在线观看| 亚洲美女在线观看| 欧美日韩中文字幕在线视频| 国产一区二区三区精品久久久| 一本色道久久综合狠狠躁篇怎么玩| 亚洲一区二区久久| 国产精品精品久久久| 久久久免费av| 亚洲精品91美女久久久久久久| 97视频在线观看免费高清完整版在线观看| 国产不卡一区二区在线播放| 成人观看高清在线观看免费| 久久精品国产亚洲精品| 国产精品18久久久久久麻辣| 91av视频导航| 在线激情影院一区| 色多多国产成人永久免费网站| 国产精品网红福利| 一本大道久久加勒比香蕉| 91sa在线看| 国产一区二区三区日韩欧美| 久久久久久久香蕉网| 国内精品久久久久| 欧美日韩加勒比精品一区| 欧美日韩精品中文字幕| 欧美精品久久一区二区| 国产精品男女猛烈高潮激情| 社区色欧美激情 | 欧美性猛交xxxx富婆| 91人人爽人人爽人人精88v| **欧美日韩vr在线| 久久久精品日本| 国产91精品青草社区| 亚洲欧美第一页| 亚洲第一页中文字幕| 日韩精品视频在线免费观看| 国产精品久久久久久av福利| 成人激情春色网| 日韩av免费在线| 国产精品国模在线| 97欧美精品一区二区三区| 成人黄色av网站| 国产欧美日韩亚洲精品| 亚洲精品国产福利| 日韩最新免费不卡| 欧美剧在线观看| 日韩精品极品在线观看播放免费视频| 国产精品久久久久aaaa九色| 97国产在线视频| 久久久亚洲影院| 欧美另类xxx| 狠狠做深爱婷婷久久综合一区| 欧美精品videosex性欧美| 欧美日韩精品在线观看| 久99九色视频在线观看| 亚洲精品成a人在线观看| 在线观看国产欧美| 国产亚洲精品美女久久久久| 中文字幕av一区二区三区谷原希美| 日本免费在线精品| 日韩av电影国产| 日韩精品在线观看一区| 日韩经典中文字幕在线观看| 欧美激情欧美激情| 国产精品永久免费视频| 亚洲第一区中文99精品| 亚洲性视频网址| 国产精品午夜一区二区欲梦| 亚洲欧美精品伊人久久| 亚洲国产又黄又爽女人高潮的| 欧美精品videofree1080p| 欧美日韩国产一区二区三区| 久久精品视频免费播放| 欧美成人免费在线观看| 日韩国产欧美精品在线| 亚洲一区二区三| 亚洲黄在线观看| 日韩免费av在线| 精品久久久精品| 国产99久久精品一区二区| 国产aaa精品| 欧美又大粗又爽又黄大片视频| 亚洲欧美国产精品久久久久久久| 久久久久久综合网天天| 中文字幕日韩精品有码视频| 国产日韩在线亚洲字幕中文| 3344国产精品免费看| 日韩欧美一区二区在线| 欧美电影在线播放| 亚洲精品wwwww| 国产在线精品播放| 色妞色视频一区二区三区四区| 国产精品欧美日韩| 亚洲视频视频在线| 久久在线观看视频| 欧美大成色www永久网站婷| 国产精品亚洲网站| 精品国产一区二区三区久久久狼| 久久这里有精品| 亚洲一区二区中文| 午夜精品久久久久久久99黑人| 国内精品视频久久| 中文字幕欧美亚洲| 日本三级韩国三级久久| 91黑丝在线观看| 欧美激情亚洲视频| 国产精品久久久久久超碰| 欧美丝袜美女中出在线| 色综合天天狠天天透天天伊人| 久久av.com| 日韩视频亚洲视频| 91精品国产91久久久久久最新| 孩xxxx性bbbb欧美| 亚洲欧美日韩精品久久亚洲区| 国产v综合v亚洲欧美久久| 色综合影院在线| 亚洲国产一区二区三区在线观看| 日韩视频免费观看| 精品视频在线播放色网色视频| 国产丝袜一区二区三区| 国产精品久久在线观看| 欧美一区三区三区高中清蜜桃| 日韩在线观看免费高清完整版| 77777亚洲午夜久久多人| 国产香蕉精品视频一区二区三区| 成人女保姆的销魂服务| 亚洲国产高清高潮精品美女| 欧美小视频在线观看| 久久免费视频观看| 性日韩欧美在线视频| 亚洲成人av中文字幕| 欧美日韩国产精品| 久久99久久久久久久噜噜| 欧美精品18videosex性欧美| 久色乳综合思思在线视频| 欧美一区二区三区精品电影| 国产精品美女午夜av| 久久久久久久国产精品视频| 欧美老女人性视频| 国产精品精品一区二区三区午夜版| 日韩专区在线观看| 97在线精品视频| 国产精品视频精品视频| 日韩精品视频免费|