日本免费精品_最新日韩一区_亚洲视频一区在线_a在线视频观看_天天射夜夜骑_粉嫩av一区二区三区_欧美中日韩免费视频_综合图区欧美_国内精品美女在线观看_午夜精品久久久久久久男人的天堂

首頁 > 編程 > Regex > 正文

淺談JavaScript正則表達式的基本方法

2024-09-07 17:40:05
字體:
來源:轉載
供稿:網友

正則表達式由一類元字符和其他字符組成,可以匹配限定字符,其實小編很長時間沒有接觸到正則表達式了,今天在使用的過程中碰到了,就和大家一起溫習一下這些知識吧!
50% 的舉一反三練習中的原創。
一 javascript正則表達式的基本知識
1 javascript 正則對象創建 和用法
聲明javascript 正則表達式

?

var reCat = new RegExp("cat");
你也可以
var reCat = /cat/; //Perl 風格 (推薦)


2 學習最常用的 test exec match search replace split 6個方法
1) test 檢查指定的字符串是否存在

?

?

?


var data = "123123";
var reCat = /123/gi;
alert(reCat.test(data)); //true
//檢查字符是否存在 g 繼續往下走 i 不區分大小寫


2) exec 返回查詢值

?

?

?


var data = "123123,213,12312,312,3,Cat,cat,dsfsdfs,";
var reCat = /cat/i;
alert(reCat.exec(data)); //Cat


3)match 得到查詢數組

?

?

?


var data = "123123,213,12312,312,3,Cat,cat,dsfsdfs,";
var reCat = /cat/gi;
var arrMactches = data.match(reCat)
for (var i=0;i < arrMactches.length ; i++)
{
alert(arrMactches[i]); //Cat cat
}


4) search 返回搜索位置 類似于indexof

?

?

?


var data = "123123,213,12312,312,3,Cat,cat,dsfsdfs,";
var reCat = /cat/gi;
alert(data.search(reCat)); //23


5) replace 替換字符 利用正則替換

?

?

?


var data = "123123,213,12312,312,3,Cat,cat,dsfsdfs,";
var reCat = /cat/gi;
alert(data.replace(reCat,"libinqq"));


6)split 利用正則分割數組

?

?

?


var data = "123123,213,12312,312,3,Cat,cat,dsfsdfs,";
var reCat = //,/;
var arrdata = data.split(reCat);
for (var i = 0; i < arrdata.length; i++)
{
alert(arrdata[i]);
}


3 學習下 簡單類 負向類 范圍類 組合類

?

?

?


//簡單類
var data = "1libinqq,2libinqq,3libinqq,4libinqq";
var reCat = /[123]libinqq/gi;
var arrdata = data.match(reCat);
for (var i = 0; i < arrdata.length; i++)
{
alert(arrdata[i]); // 1libinqq 2libinqq 3libinqq
}
//負向類
var data = "alibinqq,1libinqq,2libinqq,3libinqq,4libinqq"; ///u0062cf
var reCat = /[^a123]libinqq/gi;
var arrdata = data.match(reCat);
for (var i = 0; i < arrdata.length; i++)
{
alert(arrdata[i]); //4libinqq
}
//范圍類
var data = "libinqq1,libinqq2,libinqq3,libinqq4,libinqq5"; ///u0062cf
var reCat = /libinqq[2-3]/gi;
var arrdata = data.match(reCat);
for (var i = 0; i < arrdata.length; i++)
{
alert(arrdata[i]); // libinqq2 libinqq3
}
//組合類
var data = "a,b,c,w,1,2,3,5"; ///u0062cf
var reCat = /[a-q1-4/n]/gi;
var arrdata = data.match(reCat);
for (var i = 0; i < arrdata.length; i++)
{
alert(arrdata[i]); // a b c 1 2 3
}


這些都是 js正則 最基本的使用方法,看不會的請復制到筆記本練習下,看會了再往下面看。
二 javascript 正則表達式是分組知識
1) 簡單分組

?

?

?


<script language="JavaScript">
<!--
/*正則表達式 簡單的分組
舉例 我們要查找字符串 MouseMouse
var reCat = /MouseMouse/gi;
盡管這是可以的,但是有點浪費。如果不知道Mouse 在字符串中到底出現幾次時該怎么辦,如果重復多次呢。
var reCat = /(mouse){2}/gi; 括號的意思列Mouse 將在一行連續出現2次。
*/
var data = "Ah-mousemouse";
var reCat = /(mouse){2}/gi;
var arrdata = data.match(reCat);
for (var i = 0; i < arrdata.length; i++)
{
alert(arrdata[i]);
}
//-->
</script>


2 復雜分組

?

?

?


<script language="JavaScript">
<!--
/*正則表達式 復雜的分組
? 零次 或 一次
* 零次 或 多次
+ 最少一次 或 多次
*/
var data = "bb ba da bad dad aa ";
var reCat = /([bd]ad?)/gi; // 匹配出 ba da bad dad
var arrdata = data.match(reCat);
for (var i = 0; i < arrdata.length; i++)
{
alert(arrdata[i]);
}
// 同時 也不介意將分組放在分組中間
// var re = /(mom( and dad)?)/; 匹配出 mom 或 mon and daa
//-->
</script>


3 反向引用

?

?

?


<script language="JavaScript">
<!--
/*正則表達式 反向引用*/
var sToMatch = "#123456789";
var reNumbers = /#(/d+)/;
reNumbers.test(sToMatch);
alert(RegExp.$1);
/*
這個例子嘗試匹配后面跟著幾個或多個數字的鎊符合,并對數字進行分組
以存儲他們。在調用 test 方法后,所有的反向引用都保存到了 RegExp 構造函數中
從 RegExp.$1(它保存了第一個反向引用)開始,如果還有第二個反向引用,就是
RegExp.$2,如果還有第三個反向引用存在,就是 RegExp.$3.依此類推。因為該組
匹配了 “123456780”,所以 RegExp.$1 中就存儲了這個字符串。
*/
var sToChange = "1234 5678";
var reMatch = /(/d{4}) (/d{4})/;
var sNew = sToChange.replace(reMatch,"$2 $1");
alert(sNew);
/*
在這個例子中,正則表達式有兩個分組,每一個分組有四個數字。在 replace() 方法的第二個參數
中,$2 等同于 “5678” ,而 $1 等同于 “1234”,對應于它們在表達式中的出現順序。
*/
//-->
</script>


4 候選

?

?

?


<script language="JavaScript">
<!--
/*正則表達式 候選 */
var sToMatch1 = "red";
var sToMatch2 = "black";
var reRed = /red/;
var reBlack = /black/;
alert(reRed.test(sToMatch1) || reBlack.test(sToMatch1));
alert(reRed.test(sToMatch2) || reBlack.test(sToMatch2));
/*
這雖然能完成任務,但是十分沉長,還有另一種方式就是正則表達式的候選操作符。
*/
var sToMatch1 = "red";
var sToMatch2 = "black";
var reRedOrBlack = /(red|black)/;
alert(reRedOrBlack.test(sToMatch1));
alert(reRedOrBlack.test(sToMatch2));
//-->
</script>


5 非捕獲性分組

?

?

?


<script language="JavaScript">
<!--
/*正則表達式 非捕獲性分組
如果要創建一個非捕獲性分組,只要在左括號的后面加上一個問號和一個緊跟的冒號:
*/
var sToMatch = "#123456789";
var reNumbers = /#(?:/d+)/;
reNumbers.test(sToMatch);
alert(RegExp.$1);
/*
這個例子的最后一行代碼輸出一個空字符串,因為該組是非捕獲性的,
*/
var sToMatch = "#123456789";
var reNumbers = /#(?:/d+)/;
alert(sToMatch.replace(reNumbers,"abcd$1"));
/*
正因如此,replace()方法就不能通過 RegExp.$x 變量來使用任何反向引用,這段代碼
輸出的“abcd$1”而不是abcd123456789, 因為$1 在這里并不被看成是一個反向引用。
*/
//-->
</script>


6 前瞻

?

?

?


<script language="JavaScript">
<!--
/*正則表達式 前瞻
前瞻 就和它名字一樣,它告訴正則表達式運算器向前看一些字符而不是移動位置
*/
var sToMatch1 = "bedroom";
var sToMatch2 = "bedding";
var reBed = /bed(?=room)/;
alert(reBed.test(sToMatch1)); //true
alert(reBed.test(sToMatch2)); //false
//負向前瞻
var sToMatch1 = "bedroom";
var sToMatch2 = "bedding";
var reBed = /bed(?!room)/;
alert(reBed.test(sToMatch1)); //false
alert(reBed.test(sToMatch2)); //true
//-->
</script>


7 邊界

?

?

?


<script language="JavaScript">
<!--
/*正則表達式 邊界
^ 行開頭
$ 行結尾
/b 單詞的邊界
/B 非單詞的邊界
*/
var sToMatch = "Important word is the last one.";
var reLastWord = /(/w+)/.$/;
reLastWord.test(sToMatch);
alert(RegExp.$1); //one
/*
假如想查找一個單詞,但要它只出現在行尾,則可以使用美元符號 ($)來表示它:
*/
var sToMatch = "Important word is the last one.";
var reLastWord = /^(/w+)/;
reLastWord.test(sToMatch);
alert(RegExp.$1); //Important
/*
在這個例子中,正則表達式查找行起始位置后的一個或多個單詞字符。如果遇到非單詞字符
匹配停止,返回 Important。 這個例子也可以用單詞邊界實現。
*/
var sToMatch = "Important word is the last one.";
var reLastWord = /^(.+?)/b/;
reLastWord.test(sToMatch);
alert(RegExp.$1); //Important
/*
這里,正則表達式用惰性量詞來制定在單詞邊界之前可以出現任何字符,且可以出現一次或
多次(如果使用貪婪性量詞,表達式就匹配整個字符串)。
*/
var data = " First second thind fourth fifth sixth ";
var reCat = //b(/S+?)/b/g;
var arrdata = data.match(reCat);
for (var i = 0; i < arrdata.length; i++)
{
alert(arrdata[i]);
}
/*
使用單詞邊界可以方便地從字符串中抽取單詞。
*/
//-->
</script>


8 多行模式
Code

?

?

?


<script language="JavaScript">
<!--
/*正則表達式 多行模式
要制定多行模式,只要在正則表達式想要匹配的行末的一個單詞
*/
var data = " First second/n thind fourth/n fifth sixth";
var reCat = /(/w+)$/g;
var arrdata = data.match(reCat);
for (var i = 0; i < arrdata.length; i++)
{
alert(arrdata[i]);
}
/*
上面只返回一個單詞 sixth,因為換行符阻擋了匹配,只能匹配行末的一個單詞,
當然也可以使用 split() 方法將字符串分割成數組,但就得對每一行進行單獨匹配。
以前不好好看書經常半吊子,看一半就仍了,導致用了好多 split, 其實很簡單如下面
例子 只需要 m 參數進行多行匹配。
*/
var data = " First second/n thind fourth/n fifth sixth";
var reCat = /(/w+)$/gm;
var arrdata = data.match(reCat);
for (var i = 0; i < arrdata.length; i++)
{
alert(arrdata[i]);
}
//-->
</script>

到目前為止,這些都是JavaScript正則表達式的基本方法,如果你看了復雜的正則表達式,你會有一種開放的感覺,感謝大家繼續支持錯新技術頻道!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
国内不卡的二区三区中文字幕| 欧美亚洲天堂网| 白嫩少妇丰满一区二区| 欧美久久一二三四区| 欧美日韩国产影片| 亚洲国产91精品在线观看| 麻豆一区二区99久久久久| 欧美日韩在线观看成人| 国产一区日韩欧美| 欧美日韩国产大片| 欧美日韩三级一区| 日韩精品在线免费观看视频| 国产欧美日韩第一页| 91欧美日韩在线| 91精品xxx在线观看| 国产在线一在线二| 国产99在线|亚洲| 国产99亚洲| 日韩精品在线视频观看| 日韩精品视频在线| 91精品国产91久久久久久久久| 欧美不卡一区二区| 国产欧美亚洲一区| 日韩三级高清在线| 国产午夜精品一区二区三区视频| 欧美日韩久久久| 中文字幕国产日韩| 国产在线日韩精品| 国产对白在线| 久久69成人| 日韩免费视频一区| 一区二区三区四区五区视频在线观看| 国产欧美日韩中文久久| 欧美日韩国产专区| √天堂资源中文www| 一区二区视频在线| 久久91精品视频| 色猫猫国产区一区二在线视频 | 亚洲一区在线观看免费| 日韩中文字幕精品视频| 日韩欧美一二三| 国产亚洲一区字幕| 日韩在线高清视频| 欧美日韩视频在线| 久久婷婷中文字幕| 中文字幕欧美日韩在线不卡| 一本一道综合狠狠老| 欧美中日韩在线| 国产成人精品网址| 亚洲 欧美综合在线网络| 91精品国产自产观看在线| 国产一级在线| 国产亚洲短视频| 国产999在线观看| 国产性一级片| 在线国产1区| 99在线国产| 欧美日韩中文另类| 91精品国产自产观看在线| 91精品视频免费在线观看| 国产欧美日韩在线| 欧美不卡视频一区| 欧美日韩激情在线一区二区三区| 99视频在线看| 深夜福利一区二区| 欧美不卡一区二区| 99色在线视频| 国产一卡二卡3卡4卡四卡在线| 久久蜜桃精品| 中文字幕亚洲一区在线观看| 红桃视频国产一区| 中文在线日韩| 久久久另类综合| 亚洲三级国产| 精品在线一区二区| 国产成人日日夜夜| 日韩欧美在线不卡| 91精品综合久久久久久 | 精品三级av| 国产欧美日韩久久| 欧美日韩精品在线| 91吃瓜在线观看| 欧美一级日韩一级| 欧美日韩精品在线| 日韩久久精品视频| 中文字幕一区不卡| 久久视频在线免费观看| 亚洲国产欧美久久| 精品日韩视频在线观看| 欧美日韩精品不卡| 欧美 中文字幕| 中文字幕一区不卡| 中文字幕第一页在线| 国产一级在线免费观看| 国产精品一区二区三区免费观看| 国产美女主播视频一区| 91精品综合久久久久久 | 99精品在线播放| 精品免费视频| 国产一区在线观看视频| 91久久精品在线| 日韩欧美字幕| 精品国产31久久久久久| 国产香蕉免费精品视频| 国产在线欧美日韩| 久久精品欧美日韩精品| 国产精品福利视频一区二区三区| 日韩在线精品视频| 欧美激情一区二区三区在线| 国产中文伊人| 国产成人精品亚洲| 国产免费久久| 日韩av一区二区在线观看| 国产福利久久| 婷婷中文字幕一区| 亚洲午夜av| 日本一级一片免费视频| 久久久精品免费免费| 亚洲一级在线| 午夜成人鲁丝片午夜精品| 99色在线视频| 久草中文在线观看| 99这里有精品视频| 欧美三级日韩在线| 中文字幕五月欧美| 欧美日韩国产999| 一区二区三区在线不卡| 国产亚洲福利| 亚洲视频在线观看三级| 国产高清精品二区| 91精品国产自产观看在线| 亚洲高清精品视频| 日韩 国产 一区| 久草视频观看| 国产男女av| 免费看ww视频网站入口| 日韩www在线| 中文欧美字幕免费| 欧美日韩在线播放一区| 日韩欧美高清在线| 男人的天堂网av| 国产黄色片中文字幕| 中文字幕4区| 欧美日韩中文在线| 中文字幕在线视频久| 日韩精品一区二区三区视频播放| 国产午夜精品全部视频播放| 久久综合九色欧美综合狠狠| 亚洲 国产 欧美 日韩| 国产一级在线免费观看| 粉嫩粉嫩芽的虎白女18在线视频| 亚洲.国产.中文慕字在线| 欧美日韩中文字幕| 精品三区视频| 九九视频精品免费| 精品日韩视频在线观看| a在线观看免费视频| 日韩精品视频免费看| 国产日韩专区| 亚洲制服丝袜一区| 日韩在线a电影| 高清国产一区| 中文字幕国产日韩| 99国产一区| 欧美三级在线看| 蜜臀久久精品| 精品成人久久av| 久久精品日韩无码| 影音先锋中文字幕在线观看| 亚洲第一中文字幕| а√天堂中文在线资源8| 国产欧美一级| 91精品观看| 日韩在线精品| 久久精品久久精品国产大片| 中文字幕精品视频| 三级网站免费观看| a视频在线播放| 日韩在线高清视频| 日韩在线视频网| 久久99蜜桃精品| 欧美中文字幕在线视频| 久久精品日韩欧美| 中文字幕日韩国产| 在线综合 亚洲 欧美中文字幕| 欧美婷婷久久| 国产黄色一区| 欧美亚洲国产日韩| 亚洲综合视频一区| 中文字幕伊人| 国产成免费视频| 国产色在线 com| 中文字幕在线官网| 日韩wumaV| 欧美成人vr18sexvr| 不卡视频一区二区三区| 欧美三级一区二区三区| 国产在线一区二区视频| 久99久视频| 欧美日韩国产在线播放| 中文字幕伊人| 91精品国产91久久久久久青草| 国产一级视频| 欧美高清一区| 黄色国产网站在线观看| 91精品国产经典在线观看| 亚洲国产91精品在线观看| 亚洲制服一区| 亚洲欧美久久久| 亚洲综合视频一区| 最新中文在线视频| 欧美日韩91| 天堂在线一区二区三区| 亚洲三级免费看| 黄色片免费在线| 日韩欧美中文在线| 日韩中文字幕视频在线| 天堂在线中文资源| 成人无遮挡免费网站视频在线观看| 亚洲一卡二卡在线观看| 国产免费一级| 国产成人精品网址| 999精品网| 国产欧美在线观看| 亚洲黄色www| 亚洲一区在线观看视频| 国产欧美日韩中文字幕| 欧美日韩综合不卡| 国产一区久久久| 91久久久精品国产| 91精品久久久久久久91蜜桃| 日韩欧美中文第一页| 欧美日韩在线中文字幕| 亚洲欧美韩国综合色| 中文字幕在线视频第一页| 日韩午夜中文字幕| 中文字幕高清在线播放| 精品国产乱码一区二区| 精品区一区二区| 红桃视频亚洲| 成人无遮挡免费网站视频在线观看| 在线亚洲免费| 日韩欧美成人一区二区三区| 久久精品一级爱片| 日韩精品乱码av一区二区| 国产视频中文字幕在线观看| 久久精品夜夜夜夜久久| 中文字幕日韩精品在线| 久久在线91| 精品1区2区3区| 国产欧美日韩在线视频| 日韩国产在线观看一区| 国产亚洲人成a一在线v站| 亚洲乱码一区av黑人高潮| 精品乱人伦一区二区三区| 国产日产一区二区三区 | 欧美日韩国产一级片| 国产成人精品免费网站| 91精品国产综合久久久蜜臀粉嫩| 一区二区中文字幕在线| 欧美日韩精品欧美日韩精品一| 日韩欧美在线看| 色偷偷一区二区三区| 欧美人妻一区二区三区| 91精品婷婷国产综合久久| 精品成人久久av| 日韩欧美字幕| 国产欧美日韩综合精品| 日韩精品免费观看视频| 国产亚洲视频中文字幕视频| 亚洲福利视频在线| 欧美日韩在线第一页| 国产一级片网站| 欧美三级日韩在线| 99久久精品国产亚洲| 蜜桃视频一日韩欧美专区| 区日韩二区欧美三区| 日韩精品视频中文字幕| 国产精品视频福利一区二区| 九七久久人人| 欧美日韩在线不卡一区| 91一区二区| 欧美日韩亚洲国产综合| 精品视频在线导航| 午夜亚洲福利| 69av亚洲| 国产啊啊啊视频在线观看| 色综合天天综合网国产成人综合天| 国产h片在线观看| 中文精品在线观看| 日韩在线视频观看正片免费网站| 中文 欧美 日韩| 91精品国产91久久久久久不卡| 国产一区激情在线| 日韩中文欧美| 欧美国产日韩综合| 九一久久久久久| 国产婷婷在线观看| 一本大道一区二区三区| 欧美日韩亚洲天堂| 日韩欧美在线字幕| 日韩免费精品| 日韩欧美国产不卡| 中文字幕视频在线免费欧美日韩综合在线看 | 香蕉人人精品| 日韩欧美在线中文字幕| 美女尤物久久精品| av不卡免费看| 精品视频三区| 亚洲欧美日本国产专区一区| 中文字幕亚洲区| 欧美日韩亚州综合| 日韩精品视频在线观看网址 | 欧美一级在线观看| 日韩在线中文字幕| 国产一区久久| 欧美日韩国产一区中文午夜| 日韩.欧美.亚洲| 一级特黄aaa大片在线观看| 中文字幕在线播出| 蜜桃视频一日韩欧美专区| 77777_亚洲午夜久久多人| 91精品国产综合久久福利| 欧美日韩国产中文| 欧美日韩性视频| 国产乱码在线| 日韩欧美三级在线| 国产成人精品av久久| 日本а中文在线天堂| 久久电影国产免费久久电影| 精品综合久久久久| 91欧美日韩在线| 欧美日韩不卡在线视频| 欧美日韩尤物久久| 欧美日韩国产综合视频在线观看| 免费在线观看国产黄| 日韩中文字幕第一页| 国产手机视频一区二区| 国产www.大片在线| 欧美日韩成人一区| 国产真实乱子伦精品视频| av手机天堂| 日韩区欧美区| 福利一区二区| 中文字幕久久精品| 亚洲黄色www| 精品对白一区国产伦| 国产黄色小视频| 久久夜色精品国产噜噜亚洲av| 欧美日韩中文字幕在线| 国产 日韩 欧美 综合 一区| 欧美日韩精品电影| 欧美一级在线观看| 久久精品一二三| 高清中文字幕在线| 国产在线导航| 国产视频一区三区| 日韩免费电影网站| 一本一道久久a久久精品综合蜜臀| 国产黄色精品| 麻豆一区二区99久久久久| 欧美片网站免费| 一区二区三区免费看视频| 亚洲第一网中文字幕| 日韩视频一区在线观看| 日韩av一区二区在线观看| 欧美三级日韩三级国产三级| 国产欧美中文字幕| 日韩中文字幕观看| 91精品国产自产| 国内精品99| 欧美日韩高清在线| 免费视频中文字幕| 在线视频国内一区二区| 精品久久久精品| 国产www.大片在线| 亚洲免费在线视频一区 二区| 欧美日韩亚洲第一| 日韩精品高清不卡| 欧美日韩亚洲天堂| 国产在线观看色| 国产成人综合av| 日韩精品国产欧美| 色国产在线视频| 日韩av一区二区在线观看| 精品人妻一区二区三区视频| 精品国产免费观看一区| 欧美日韩精品在线观看| 日本精品在线| 91久久精品国产| 欧美日韩在线播放三区四区| 国产视频一二区| 91精品在线免费观看| 一级网站免费观看| 欧美日韩国产黄色| 91麻豆视频网站| 中文字幕中文字幕精品| 精品激情国产视频| 欧美日韩国产片| 日本亚洲视频在线|