国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專(zhuān)注于服務(wù)器技術(shù)及軟件下載分享
分類(lèi)導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語(yǔ)言|JavaScript|易語(yǔ)言|vb.net|

服務(wù)器之家 - 編程語(yǔ)言 - 正則表達(dá)式 - javascript正則表達(dá)式和字符串RegExp and String(一)

javascript正則表達(dá)式和字符串RegExp and String(一)

2020-08-17 15:45正則教程網(wǎng) 正則表達(dá)式

這篇文章主要介紹了javascript正則表達(dá)式和字符串RegExp and String(一)的相關(guān)資料,需要的朋友可以參考下

前言

正則表達(dá)式是javascript非常重要和常用的功能,在jquery等大型框架中用的非常頻繁,最近抽時(shí)間學(xué)習(xí)了解了相關(guān)知識(shí),記錄下來(lái)與需要的朋友分享。

思維導(dǎo)圖

javascript正則表達(dá)式和字符串RegExp and String(一)

RegExp(正則表達(dá)式)的創(chuàng)建方式

可以通過(guò)兩種方式創(chuàng)建一個(gè)RegExp,具體如下:

通過(guò)/…./的方式來(lái)創(chuàng)建正則表達(dá)式(注意: /……/兩邊是沒(méi)有單引號(hào)或雙引號(hào)的)
通過(guò)RegExp構(gòu)造方法來(lái)創(chuàng)建一正則表達(dá)式
為了更好的描述模式,正則表達(dá)式提供了3個(gè)標(biāo)識(shí),分別是: g/i/m

g: 全局匹配:在整個(gè)字符串中匹配,而不是在第一次匹配后之后停止
i: 忽略大小寫(xiě)匹配
m: 對(duì)多行字符串中的每一行,應(yīng)用行首和行末的特殊字符(分別是^和$)
具體看參照下面代碼加深理解:

?
1
2
var regx = new RegExp('are','g');
var regx1 = /are/g;  //常用的創(chuàng)建方式

RegExp實(shí)例的主要屬性

根據(jù)RegExp的構(gòu)造函數(shù),我們大概也能猜到RegExp的主要屬性,關(guān)于實(shí)例屬性,了解下就可以了。但有一點(diǎn)要注意:這些實(shí)例屬性是不能通過(guò)for in進(jìn)行遍歷獲取的。

可參照下面代碼加深理解:

?
1
2
3
4
5
6
7
8
9
var regx1 = /are/g; //常用的創(chuàng)建方式
console.log("source:"+regx.source +" global:"+regx.global+" ignoreCase:"+regx.ignoreCase +" multiline:"+regx.multiline);
// source:are global:true ignoreCase:false multiline:false
 
for(var p in regx) { //不會(huì)進(jìn)入該for循環(huán)
 if(regx.hasOwnProperty(p)) {
 console.log(regx[p]);
 }
}

RegExp實(shí)例的主要方法 - test

根據(jù)該方法非常簡(jiǎn)單,只有一個(gè)參數(shù),常用來(lái)驗(yàn)證輸入的參數(shù)與正則表達(dá)式模式是否匹配,如果匹配返回true,否則返回false. 可參照下面代碼加深理解:

?
1
2
3
4
5
var regx1 = /are/g;
var res = regx.test('you are a good boy!');
console.log(res) ; //true
var res1 = regx.test('I am a good boy!');
 console.log(res1) ; //false

RegExp實(shí)例的主要方法 - exec

法該方法是一個(gè)非常常用的方法,需要好好理解。它只接收一個(gè)參數(shù),即要匹配的字符串,返回值卻是一個(gè)數(shù)組arr,數(shù)組里存儲(chǔ)的是第一個(gè)匹配項(xiàng)的相關(guān)信息,包括:

input: 要匹配的字符串,exec方法的輸入值

index:匹配性在字符串中的位置

arr[0]: 模式匹配的字符串

arr[1]…arr[n]: 第n個(gè)捕獲組字符串

使用該方法時(shí)要注意:如果在正則表達(dá)式中未指定全局標(biāo)志g,則每次執(zhí)行始終返回的都是第一個(gè)匹配項(xiàng),如果設(shè)置了全局標(biāo)志g,每次調(diào)用exec,則會(huì)在字符串中繼續(xù)查找新匹配項(xiàng)

可參照下面代碼加深理解:

?
1
2
3
4
5
6
7
8
9
var regx = /fn:(\w+)\s+ln:(\w+)\s/g;
var s ="your fn:xiaoxin ln:tang right?";
var result = regx.exec(s);
console.log(result.input); //your fn:xiaoxin ln:tang right?
console.log(result.index); //5
console.log(result[0]); //fn:xiaoxin ln:tang
console.log(result[1]); //xiaoxin
console.log(result[2]); //tang
console.log(result[3]); //undefined 因?yàn)橹挥?個(gè)捕獲組,所以打印undefined

RegExp構(gòu)造函數(shù)屬性

關(guān)于函數(shù)屬性,可以參照其它編程語(yǔ)言(如java)中類(lèi)的靜態(tài)屬性來(lái)理解,這些屬性被所有的RegExp實(shí)例共享,也就是所有的RegExp都可以訪問(wèn)和修改這些屬性,當(dāng)某個(gè)實(shí)例執(zhí)行test或exec方法時(shí),這些屬性的值也將跟著發(fā)生變化

關(guān)于這些屬性,我們可以按照自己的理解記憶:

input : 需要進(jìn)行模式匹配的字符串,test或exec方法的輸入?yún)?shù)。 參數(shù)別名: $-
lastMatch : 最近一次匹配項(xiàng) 。 參數(shù)別名:$&
leftContext : 匹配項(xiàng)左邊的字符串。參數(shù)別名:$`
rightContext : 匹配項(xiàng)右邊的字符串 。 參數(shù)別名:$'
1,2,$3….: 捕獲組對(duì)應(yīng)的字符串 。

當(dāng)然這些值,完全可以通過(guò)RegExp實(shí)例執(zhí)行exec返回的結(jié)果計(jì)算得到,那為什么要在構(gòu)造函數(shù)RegExp中設(shè)置這些屬性呢?*

可參照下面代碼加深理解:

?
1
2
3
4
5
6
7
8
9
var regx = /fn:(\w+)\s+ln:(\w+)\s/g;
var s ="your fn:xiaoxin ln:tang right?";
var result = regx.exec(s);
console.log(RegExp.input); //your fn:xiaoxin ln:tang right?
console.log(RegExp.lastMatch); //fn:xiaoxin ln:tang
console.log(RegExp.leftContext); //your
console.log(RegExp.rightContext); //right?
console.log(RegExp.$1); //xiaoxin
console.log(RegExp.$2); //tang

RegExp - 元字符

與其它語(yǔ)言中的正則表達(dá)式類(lèi)似, js正則表達(dá)式中也存在一些元字符,這些字符有特殊的用途和含義,所以在使用的過(guò)程中,需要對(duì)這些字符進(jìn)行轉(zhuǎn)義,通過(guò)在這些字符前加上'\' 進(jìn)行轉(zhuǎn)義處理. JS正則表達(dá)是的元字符有:

( [ { \ ^ $ | ) ? * + . ] } 

RegExp - 貪婪匹配和懶惰匹配

貪婪匹配就是在正則表達(dá)式的匹配過(guò)程中,默認(rèn)會(huì)使得匹配長(zhǎng)度越大越好。在JS正則表達(dá)式中,懶惰限定符是 ‘?' ,在模式中添加 ‘?' 則要求是懶惰匹配。具體參照下面代碼來(lái)理解:

?
1
2
3
4
5
var s = 'I am a good boy,you are also a good boy !';
var regx = /good.*boy/g; //貪婪匹配
console.log(regx.exec(s)[0]); //good boy,you are also a good boy
var regx1 = /good.*?boy/g; //懶惰匹配
console.log(regx1.exec(s)[0]); //good boy

以上內(nèi)容是小編給大家分享的javascript正則表達(dá)式和字符串RegExp and String(一),下篇文章給大家分享javascript正則表達(dá)式和字符串RegExp and String(二)希望大家喜歡。

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 精品伦精品一区二区三区视频 | 黄色成人一级片 | 免费观看www7722午夜电影 | 日韩成人免费视频 | 91精品综合久久久久久五月天 | 91久久精品国产91久久 | 亚洲乱码国产乱码精品精98午夜 | 精品一区二区三区在线观看 | 午夜在线 | 26uuu国产电影一区二区 | 日韩中文字幕免费在线播放 | 亚洲黄色片视频 | 91久久精品| 久久99这里只有精品 | 欧美视频在线一区 | 在线一级视频 | av黄色网页| 日韩一区精品 | 最新国产在线 | 久久久久av | 黄桃av | 国产情侣免费视频 | 亚洲一区二区在线播放 | 超碰c | 久久美| 免费看黄在线网站 | 久久奸| 69久久| 黄色一级毛片在线观看 | 一区视频 | 亚洲精品久久一区二区三区 | 欧美一区日韩一区 | 中文字幕av网 | 日韩精品专区在线影院重磅 | 免费不卡视频 | 99福利视频 | 中文字幕在线看 | 久草中文在线 | 91仓库| 午夜精品久久久久久久久久久久久 | 91高清在线|