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

首頁 > 編程 > regex > 正文

js正則表達式學習筆記

2020-01-20 22:07:44
字體:
來源:轉載
供稿:網友

正則表達式:對字符串中的信息實現查找、替換和提取操作。(不支持注釋和空白,必須寫在一行內)
正則表達式的創建:包含在一對斜杠之間的字符(直接量語法)
例如:

var pattern = /s$/;  // 創建一個正則來匹配所有以字母s結尾的字符串,并賦值給pattern

一 、字符類
將直接量字符單獨放進方括號內就組成了字符類。
一個字符類可以匹配它所包含的任意字符。
正則表達式的字符類:
[...]      方括號內的任意字符
[^...]    不在方括號內的任意字符
.           除換行符和其他Unicode行終止符之外的任意字符
/w        任何ASCII字符組成的單詞 等價于[a-zA-Z0-9]
/W        任何非ASCII字符組成的單詞 等價于[^a-zA-Z0-9]
/s         任何Unicode空白符
/S        任何非Unicode空白符
/d        任何ASCII數字 等價于[0-9]
/D        任何非ASCII數字 等價于[^0-9]
[/b]      退格直接量(特例)
例如:/[a,b,c]/       表示和字母a,b,c中的任意一個都匹配
   /[/s/d]/        表示匹配任意空白字符或者數字

二、重復
用以表示指定字符重復的標記
正則表達式的重復字符語法:
{n,m}      匹配前一項至少n次,但不超過m次
{n,}     匹配前一項n次或者更多次
{n}      匹配前一項n次
?       匹配前一項0次或者1次,也就是前一項是可選的,等價于{0,1}
+         匹配前一項1次或多次,等價于{1,}
*          匹配前一項0次或多次,等價于{0,}

例如://d{2,4}/     匹配2~4個數字
   //w{3}/d/    精確匹配3個單詞和一個可選數字

三、選擇、分組和引用
匹配程序:從左到右,如果左邊的匹配項匹配了,就自動忽略右邊的匹配項(即使可以產生更好的匹配)
①     |    用于分隔供選擇的字符
   例如: /ab|cd|ef/      可以匹配字符串“ab”,"cd"或者“ef”
       //d{3}|[a-z]{4}/       匹配3位數字或四個小寫字母
②  ()
作用一:把單獨項合成子表達式
作用二:在完整的模式中定義子模式
    當一個正則表達式成功的和目標字符串相匹配時,可以從目標字符串中抽出和圓括號中的子模式相匹配的部分。
    例如:
    /[a-z]+/d+/   檢索一個或多個小寫字母后邊跟著一個或多個數字
    如果我們關心的是每個尾部的數字,則可以把模式的數字部分放到括號(/[a-z]+(/d)/),這樣就可以從檢索到的匹配中抽取數字了
作用三:允許在同一正則表達式的后部引入前面的子表達式
    實現方法:在字符/后加一位或多位數字(這個數字指定了帶圓括號的子表達式在正則表達式中的位置)
    例如:/1    引用的是第一個帶圓括號的子表達式
    注: 位置以參與計數的左括號位置為準;
    正則表達式不允許用雙引號括起的內容中有單引號,反之亦然。
總結:
|       選擇,匹配的是該字符左邊的子表達式或右邊的子表達式
(...)      組合,將幾個項組合成一個單元
(...?)    只組合,把項組合到一個單元,但不記憶與該組相匹配的字符
/n        和第n個分組第一次匹配的字符相匹配,組是圓括號中的子表達式,組索引是從左到右的左括號數,(?: 這個形式的分組不參與索引編碼
四、指定匹配的位置:
錨 :
指定匹配發生的合法位置
^    匹配字符串的開頭
$    匹配字符串的結尾
/b   匹配一個單詞的邊界 (位于/w和/W之間的位置)
/B   匹配非單詞邊界的位置

五、修飾符

修飾符是放在//之外的,不會出現在兩條/線之間
i 不區分大小寫
g 全局匹配,找到所有匹配,而不是找到第一個之后就停止
m 多行匹配

六、 用于模式匹配的String對象的方法
方法一: search() 檢索與之匹配的位置
參數:一個正則表達式
返回:第一個與之匹配的子串的起始位置,如果找不到匹配的子串,返回-1
例如:

<script> "javascript".search(/script/i);  //返回值為4  </script>

注:① 如果search()的參數不是正則表達式,則會通過RegExp構造函數將他轉換成正則表達式
      ② search()不支持全局檢索
方法二: replace() 執行檢索與替換操作
參數:第一個-->正則表達式
   第二個-->要進行替換的字符串(也可是一個函數,該函數能動態的計算替換字符串)
注:① 支持g,
    正則表達式中設置了g:所有與模式匹配的子串都將替換成第二個參數指定的字符串
      正則表達式中沒設置g:只替換所匹配的第一個子串
 ?、?如果第一個參數不是正則,而是一個字符串時,replace()將直接搜索這個字符串

例如:將所有不區分大小寫的javascript都替換成大小寫正確的JavaScript

<script> var str = "javascript,javascript,javascript,javaScript"; alert(str.replace(/javascript/gi,"JavaScript"));  //JavaScript,JavaScript,JavaScript,JavaScript</script>

方法三 : match()
參數:正則表達式
返回:由匹配結果組成的數組
支持g
實例一:

<script> var math = "1 plus 2 equals 3".match(//d+/g); console.log(math);  // ["1", "2", "3"] console.log(typeof math);  //object</script>  

實例二:

<script> var math = "1 plus 2 equals 3".match(//d/); console.log(math);  // ["1", index: 0, input: "1 plus 2 equals 3"] console.log(typeof math);  //object</script>

注意:
給字符串的math()傳入一個非全局的正則表達式:
匹配情況:只檢索第一個匹配
返回值:數組
    數組第一個元素:所匹配的字符串
    數組第二個元素:正則表達式中用圓括號括起來的子表達式,返回的數組有兩個屬性-->index和input

方法四: split()
返回值:數組
分隔符:split()的參數
例如:

<script> var str= "1,2,3,4,5,6,7,8".split(','); console.log(str); //["1", "2", "3", "4", "5", "6", "7", "8"]</script>

參數是正則表達式時(可以指定分隔符,允許兩邊可以留任意多的空白符)
返回:用以調用它的字符串拆分為一個子字符串組成的數組

<script> var str= "1,2,3,4,5,6,7,8".split(//s*,/s*/);  //允許兩邊留任意多的空白符 console.log(str);  //["1", "2", "3", "4", "5", "6", "7", "8"]</script>

七、RegExp 對象

RegExp()構造函數:
參數:兩個字符串參數
第一個:正則表達式的主體部分(兩個斜杠之間的文本)
第二個:(可選)指定正則表達式的修飾符(g,i,m這三者或這三者的組合)
注意:無論是字符串直接量還是正則表達式都使用/字符作為轉譯字符的前綴
例如:

var zipCode = new RegExp('//d{5}','g'); //全局匹配字符串中的5個數字,注意這里是//而不是/

以上就是為大家整理的關于js正則表達式學習筆記,希望對大家學習js正則表達式有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美中文在线观看| 在线视频一区二区| 日韩中文字幕欧美| 亚洲人成绝费网站色www| 亚洲性猛交xxxxwww| 中文字幕国产亚洲| 欧美片一区二区三区| 日韩欧美亚洲一二三区| 操91在线视频| 精品人伦一区二区三区蜜桃网站| 麻豆一区二区在线观看| 日韩欧美大尺度| 91精品久久久久久久久青青| 亚洲a一级视频| 久久国产精彩视频| 91免费高清视频| 福利视频一区二区| 国产成人精品一区二区| 不卡毛片在线看| 在线成人免费网站| 成人免费在线视频网站| 日本久久久久久久久| 日韩视频亚洲视频| 韩国19禁主播vip福利视频| 成人黄色免费在线观看| 欧美亚洲视频在线看网址| 久久成人国产精品| 国产精品视频在线观看| 国产精欧美一区二区三区| 欧美精品videossex88| 精品久久久国产| 国模私拍一区二区三区| 68精品国产免费久久久久久婷婷| 91精品91久久久久久| 麻豆乱码国产一区二区三区| 中文字幕久精品免费视频| 亚洲欧美一区二区三区在线| 国内精品模特av私拍在线观看| 91在线视频精品| 亚洲国产精品专区久久| 狠狠色狠狠色综合日日小说| 国产精品视频在线播放| 亚洲奶大毛多的老太婆| 亚洲福利视频久久| 欧美在线视频免费| 欧美成人四级hd版| 一区二区三区天堂av| 隔壁老王国产在线精品| zzjj国产精品一区二区| 亚洲精品日韩av| 国产精品久久久亚洲| 久久天天躁狠狠躁夜夜躁2014| 日韩国产欧美精品一区二区三区| 国产日本欧美一区二区三区| 91久久精品久久国产性色也91| 欧美国产日产韩国视频| 精品视频在线观看日韩| 另类视频在线观看| 色诱女教师一区二区三区| 欧美日韩激情视频| 精品久久久久久中文字幕大豆网| 亚洲一区二区三区毛片| 夜夜嗨av色综合久久久综合网| 精品久久久久久电影| 欧美日本高清一区| 国产精品爱啪在线线免费观看| 91产国在线观看动作片喷水| 久久影视电视剧免费网站| 欧美激情va永久在线播放| 欧美另类老肥妇| 欧美日韩xxx| 国产精品高清免费在线观看| 欧美国产乱视频| 午夜精品一区二区三区在线播放| 亚洲一区二区久久久久久| 亚洲xxx视频| 久久精品国亚洲| 久久精品国产v日韩v亚洲| 久久av红桃一区二区小说| 色噜噜久久综合伊人一本| 成人av在线亚洲| 91在线免费视频| 少妇高潮 亚洲精品| 欧美激情第1页| 精品动漫一区二区| 国产视频综合在线| 久久免费视频观看| 久久99精品国产99久久6尤物| 亚洲第一中文字幕| 国产精品露脸自拍| 亚洲片av在线| 欧美日韩精品国产| 日本成人在线视频网址| 久久久www成人免费精品| 久精品免费视频| 久久中国妇女中文字幕| 在线视频免费一区二区| 成人福利网站在线观看| 亚洲free嫩bbb| 精品视频在线导航| 国产精品第10页| 国产精品美女久久久久av超清| 久久伊人精品天天| 成人高清视频观看www| 国产精品欧美在线| 日韩国产精品一区| 欧美日韩一区二区免费视频| 日韩av影院在线观看| 日韩一区二区福利| 欧美日韩成人在线播放| 亚洲美女av在线| 亚洲国产精品大全| 久久久之久亚州精品露出| 青青久久aⅴ北条麻妃| 日韩精品福利在线| 国产精品普通话| 久久精品久久久久久| 久久99视频免费| 欧美日韩免费在线观看| 亚洲天堂av在线免费观看| 欧美电影在线观看网站| 亚洲夜晚福利在线观看| 欧美电影免费观看电视剧大全| 色阁综合伊人av| 日韩成人性视频| 国产偷亚洲偷欧美偷精品| 欧美极品少妇xxxxⅹ免费视频| 久久在线观看视频| 91九色蝌蚪国产| 久久人人看视频| 久久天天躁狠狠躁夜夜av| 亚洲欧美国产精品专区久久| 欧美裸体男粗大视频在线观看| 久久香蕉国产线看观看av| 亚洲精品福利视频| 国产99久久精品一区二区 夜夜躁日日躁| 久久精品亚洲国产| www.日韩欧美| 日韩精品欧美国产精品忘忧草| 久久91精品国产91久久久| 久久资源免费视频| 国产日韩专区在线| 欧美视频专区一二在线观看| 欧美电影免费观看高清| 97视频com| 日韩va亚洲va欧洲va国产| 亚洲精品98久久久久久中文字幕| 大量国产精品视频| 日韩免费在线免费观看| 欧美激情aaaa| 国产成人免费av电影| 久久精品国产亚洲| 国产香蕉精品视频一区二区三区| 久久久久久久久久久亚洲| **欧美日韩vr在线| 亚洲天堂影视av| 国产成人一区二区三区电影| 成人女保姆的销魂服务| 97人人模人人爽人人喊中文字| 欧美一区二粉嫩精品国产一线天| 久久av资源网站| 欧美裸体视频网站| 欧美成人手机在线| 成人羞羞国产免费|