gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区

站長資訊網(wǎng)
最全最豐富的資訊網(wǎng)站

JavaScript正則表達式下之相關(guān)方法

上篇文章給大家介紹了JavaScript 正則表達式上之基本語法介紹了JavaScript正則表達式的語法,有了這些基本知識,可以看看正則表達式在JavaScript的應(yīng)用了,在一切開始之前,看看RegExp實例的幾個屬性

JavaScript正則表達式下之相關(guān)方法

RegExp實例對象有五個屬性

1.global:是否全局搜索,默認是false

2.ignoreCase:是否大小寫敏感,默認是false

3.multiline:多行搜索,默認值是false

4.lastIndex:是當(dāng)前表達式模式首次匹配內(nèi)容中最后一個字符的下一個位置,每次正則表達式成功匹配時,lastIndex屬性值都會隨之改變。

5.source:正則表達式的文本字符串

除了將正則表達式編譯為內(nèi)部格式從而使執(zhí)行更快的compile()方法,對象還有兩個我們常用的方法

regObj.test(strObj)

方法用于測試字符串參數(shù)中是否存正則表達式模式,如果存在則返回true,否則返回false

復(fù)制代碼 代碼如下:

var reg=/d+.d{1,2}$/g;reg.test(‘123.45’); //truereg.test(‘0.2’); //truereg.test(‘a.34’); //falsereg.test(‘34.5678’); //false

regObj.exec(strObj)

方法用于正則表達式模式在字符串中運行查找,如果 exec() 找到了匹配的文本,則返回一個結(jié)果數(shù)組。否則,返回 null。除了數(shù)組元素和 length 屬性之外,exec() 方法還返回兩個屬性。index 屬性聲明的是匹配文本的第一個字符的位置。input 屬性則存放的是被檢索的字符串 string。

調(diào)用非全局的 RegExp對象的 exec() 時,返回數(shù)組的第 0 個元素是與正則表達式相匹配的文本,第 1 個元素是與 RegExpObject 的第 1 個子表達式相匹配的文本(如果有的話),第 2 個元素是與 RegExp對象的第 2 個子表達式相匹配的文本(如果有的話),以此類推。

調(diào)用全局的RegExp對象的 exec()時,它會在 RegExp實例的 lastIndex 屬性指定的字符處開始檢索字符串 string。當(dāng) exec() 找到了與表達式相匹配的文本時,在匹配后,它將把 RegExp實例的 lastIndex 屬性設(shè)置為匹配文本的最后一個字符的下一個位置??梢酝ㄟ^反復(fù)調(diào)用 exec() 方法來遍歷字符串中的所有匹配文本。當(dāng) exec() 再也找不到匹配的文本時,它將返回 null,并把 lastIndex 屬性重置為 0。

復(fù)制代碼 代碼如下:

var reg=/d/g;var r=reg.exec(‘a1b2c3’); console.log(reg.lastIndex); //2r=reg.exec(‘a1b2c3’);console.log(reg.lastIndex); //4

兩次執(zhí)行r的結(jié)果

JavaScript正則表達式下之相關(guān)方法 JavaScript正則表達式下之相關(guān)方法

復(fù)制代碼 代碼如下:

var reg=/d/g;while(r=reg.exec(‘a1b2c3′)){ console.log(r.index+’:’+r[0]);}

可以看到結(jié)果:

復(fù)制代碼 代碼如下:
1:13:25:3

除了上面的兩個方法,有些字符串函數(shù)可以傳入RegExp對象作為參數(shù),進行一些復(fù)雜的操作

strObj.search(RegObj)

search() 方法用于檢索字符串中指定的子字符串,或檢索與正則表達式相匹配的子字符串。search() 方法不執(zhí)行全局匹配,它將忽略標志 g。它同時忽略 regexp 的 lastIndex 屬性,并且總是從字符串的開始進行檢索,這意味著它總是返回 stringObject 的第一個匹配的位置。

復(fù)制代碼 代碼如下:

‘a1b2c3′.search(/d/g); //1’a1b2c3’.search(/d/); //1

strObj.match(RegObj)

match() 方法將檢索字符串 stringObject,以找到一個或多個與 regexp 匹配的文本。但regexp是否具有標志 g對結(jié)果影響很大。

如果 regexp 沒有標志 g,那么 match() 方法就只能在 strObj 中執(zhí)行一次匹配。如果沒有找到任何匹配的文本, match() 將返回 null。否則,它將返回一個數(shù)組,其中存放了與它找到的匹配文本有關(guān)的信息。該數(shù)組的第 0 個元素存放的是匹配文本,而其余的元素存放的是與正則表達式的子表達式匹配的文本。除了這些常規(guī)的數(shù)組元素之外,返回的數(shù)組還含有兩個對象屬性。index 屬性聲明的是匹配文本的起始字符在 stringObject 中的位置,input 屬性聲明的是對 stringObject 的引用。

復(fù)制代碼 代碼如下:

var r=’aaa123456′.match(/d/);

JavaScript正則表達式下之相關(guān)方法

如果 regexp 具有標志 g,則 match() 方法將執(zhí)行全局檢索,找到 strObj 中的所有匹配子字符串。若沒有找到任何匹配的子串,則返回 null。如果找到了一個或多個匹配子串,則返回一個數(shù)組。不過全局匹配返回的數(shù)組的內(nèi)容與前者大不相同,它的數(shù)組元素中存放的是 strObj 中所有的匹配子串,而且也沒有 index 屬性或 input 屬性。

復(fù)制代碼 代碼如下:

var r=’aaa123456′.match(/d/g);

JavaScript正則表達式下之相關(guān)方法

strObj.replace(regObj,replaceStr)

關(guān)于strng對象的replace方法,我們最常用的時傳入兩個字符串的做法,但這種做法有個缺陷,只能replace一次

復(fù)制代碼 代碼如下:

‘abcabcabc’.replace(‘bc’,’X’); //aXabcabc

replace方法的第一個參數(shù)還可以傳入RegExp對象,傳入正則表達式可以時replace方法更加強大靈活

復(fù)制代碼 代碼如下:

‘abcabcabc’.replace(/bc/g,’X’); //aXaXaX’abcaBcabC’.replace(/bc/gi,’X’); //aXaXaX

如果replace方法的第一個參數(shù)傳入的是帶分組的正則表達式,我們在第二個參數(shù)中可以使用$1…$9來獲取相應(yīng)分組內(nèi)容,比如希望把字符串 1<%2%>34<%567%>89 的<%x%>換為$#x#$,我們可以這樣

復(fù)制代碼 代碼如下:

‘1<%2%>34<%567%>89′.replace(/<%(d+)%>/g,’@#$1#@’);//1@#2#@34@#567#@89

當(dāng)然還有很多方式可以達到這一目的,這里只是演示一下利用分組內(nèi)容,我們在第二個參數(shù)中使用 @#$1#@,其中$1表示被捕獲的分組內(nèi)容,在一些js模板函數(shù)中可以經(jīng)常見到這種方式替換字符串。

strObj.replace(regObj,function(){})

可以通過修改replace方法的第二個參數(shù),使replace更加強大,在前面的介紹中,只能把所有匹配替換為固定內(nèi)容,但如果我希望把一個字符串中所有數(shù)字,都用小括號包起來該怎么弄

復(fù)制代碼 代碼如下:

‘2398rufdjg9w45hgiuerhg83ghvif’.replace(/d+/g,function(r){ return ‘(‘+r+’)’;}); //”(2398)rufdjg(9)w(45)hgiuerhg(83)ghvif”

把replace方法的第二個參數(shù)傳入一個function,這個function會在每次匹配替換的時候調(diào)用,算是個每次替換的回調(diào)函數(shù),我們使用了回調(diào)函數(shù)的第一個參數(shù),也就是匹配內(nèi)容,其實回調(diào)函數(shù)一共有四個參數(shù)

1.第一個參數(shù)很簡單,是匹配字符串

2.第二個參數(shù)是正則表達式分組內(nèi)容,沒有分組則沒有該參數(shù)

3.第三個參數(shù)是匹配項在字符串中的index

4.第四個參數(shù)則是原字符串

復(fù)制代碼 代碼如下:

‘2398rufdjg9w45hgiuerhg83ghvif’.replace(/d+/g,function(a,b,c){ console.log(a+’t’+b+’t’+c); return ‘(‘+a+’)’;}); 2398 0 2398rufdjg9w45hgiuerhg83ghvif9 10 2398rufdjg9w45hgiuerhg83ghvif45 12 2398rufdjg9w45hgiuerhg83ghvif83 22 2398rufdjg9w45hgiuerhg83ghvif

 

這是沒有分組的情況,打印出來的分別是 匹配內(nèi)容、匹配項index和原字符串,看個有分組的例子,如果我們希望把一個字符串的<%%>外殼去掉,<%1%><%2%><%3%> 變成123

復(fù)制代碼 代碼如下:
‘<%1%><%2%><%3%>’.replace(/<%([^%>]+)%>/g,function(a,b,c,d){ console.log(a+’t’+b+’t’+c+’t’+d); return b;}) //123<%1%> 1 0 <%1%><%2%><%3%> <%2%> 2 5 <%1%><%2%><%3%> <%3%> 3 10 <%1%><%2%><%3%>

根據(jù)這種參數(shù)replace可以實現(xiàn)很多強大的功能,尤其是在復(fù)雜的字符串替換語句中經(jīng)常使用。

strObj.split(regObj)

我們經(jīng)常使用split方法把字符串分割為字符數(shù)組

復(fù)制代碼 代碼如下:
‘a,b,c,d’.split(‘,’); //[“a”, “b”, “c”, “d”]

和replace方法類似,在一些復(fù)雜的分割情況下我們可以使用正則表達式解決

復(fù)制代碼 代碼如下:
‘a1b2c3d’.split(/d/); //[“a”, “b”, “c”, “d”]

這樣就可以按照數(shù)字分割字符串了,是不是很強大??赐赀@兩篇博客基本就能對平時用到的JavaScript正則表達式游刃有余了。要求在前端把一個div中的英文段落單詞首字母都換成大寫,你是不是知道該怎么做了?

贊(0)
分享到: 更多 (0)
?
網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號
gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区
久久久久福利视频| 五月婷婷之婷婷| 久久6免费视频| 农村妇女精品一二区| 日韩精品一区二区三区电影| 久久久国产欧美| 日韩中文字幕在线视频观看| 日本丰满大乳奶| 亚洲第一色av| 亚洲美女爱爱视频| 国产福利影院在线观看| 日韩中文字幕在线视频观看| 麻豆传媒网站在线观看| 波多野结衣免费观看| 不卡的av中文字幕| 五月天激情视频在线观看| 国产一区二区三区小说| 亚洲精品偷拍视频| 午夜探花在线观看| 久久人人爽人人片| 久久精品视频在线观看免费| 亚洲精品成人在线播放| 国产美女18xxxx免费视频| 久热精品在线播放| 911福利视频| 波多野结衣国产精品| 亚洲精品免费一区亚洲精品免费精品一区 | 在线观看av日韩| 国产中文字幕在线免费观看| 免费 成 人 黄 色| 国产成人无码一二三区视频| 37pao成人国产永久免费视频| 国内性生活视频| 日韩免费高清在线| 狠狠躁狠狠躁视频专区| 伊人成人免费视频| 日本一区二区三区四区五区六区| 亚洲国产精品影视| 国产男女免费视频| av观看免费在线| 久热精品在线播放| 日韩精品一区二区三区电影| 福利视频一二区| 亚洲爆乳无码专区| 亚洲在线观看网站| 国产美女在线一区| 99视频在线免费| 在线观看日本www| 人妻无码久久一区二区三区免费| 欧美日韩中文在线视频| 成年人黄色在线观看| 成人在线免费观看视频网站| 91九色丨porny丨国产jk| 亚洲老女人av| 久久成人福利视频| www.超碰97.com| 日本中文字幕网址| 99精品视频国产| 少妇av一区二区三区无码| 亚洲福利精品视频| 国产免费黄色小视频| 中文字幕在线综合| 成年人网站国产| 一区二区三区欧美精品| 可以在线看的av网站| 天天综合成人网| 男人揉女人奶房视频60分| 成人在线观看毛片| 极品粉嫩美女露脸啪啪| 成人免费在线小视频| 视色,视色影院,视色影库,视色网| 成人一级片网站| 男人添女荫道口女人有什么感觉| 污视频网站观看| 任你操这里只有精品| 男女猛烈激情xx00免费视频| 国产大片一区二区三区| 亚洲三级视频网站| av片中文字幕| 国产成人a亚洲精v品无码| 国产内射老熟女aaaa| 一级片免费在线观看视频| 无码精品a∨在线观看中文| a级片一区二区| 亚洲av毛片在线观看| 国产精品嫩草影院8vv8| 奇米影视四色在线| av网址在线观看免费| av动漫免费看| 国模杨依粉嫩蝴蝶150p| 丰满少妇被猛烈进入高清播放| 国产九色porny| 福利视频一区二区三区四区| 日韩在线视频在线| 丁香花在线影院观看在线播放| 黄网站色视频免费观看| 妞干网视频在线观看| 丁香六月激情婷婷| 精品久久一二三| 日日橹狠狠爱欧美超碰| 日本精品久久久久中文字幕| 国产女女做受ⅹxx高潮| 男操女免费网站| 992kp免费看片| 欧美国产视频一区| 国产成人精品视频免费看| 污污视频网站免费观看| 日本中文字幕二区| 三级网在线观看| 日b视频免费观看| 少妇无码av无码专区在线观看| 欧美黄色免费影院| 中文字幕免费高清在线| 强开小嫩苞一区二区三区网站| 国产爆乳无码一区二区麻豆| 日韩av综合在线观看| 欧美日韩在线观看不卡| 欧美 日韩 国产 在线观看| 国产91沈先生在线播放| 久久久国产欧美| 台湾无码一区二区| 在线免费视频a| www.亚洲成人网| 激情 小说 亚洲 图片: 伦| 视频一区二区视频| 99草草国产熟女视频在线| 色男人天堂av| 激情内射人妻1区2区3区| aaaaaaaa毛片| 欧美污视频网站| 永久免费看av| 国产喷水theporn| 少妇高潮喷水在线观看| 五月天丁香花婷婷| 欧美三级午夜理伦三级| 激情五月六月婷婷| 欧美一级xxxx| 黄色片视频在线播放| 免费的一级黄色片| 奇米视频7777| www.色就是色| wwwxxx黄色片| 国产日韩av网站| 青青草原网站在线观看| 一级黄色录像在线观看| 黄色一级视频在线播放| 三级网在线观看| 午夜激情影院在线观看| 午夜免费一区二区| 欧美日韩在线不卡视频| 亚洲 欧美 综合 另类 中字| 日本一二三区在线| 日本黄色福利视频| 国产嫩草在线观看| 国产日韩成人内射视频| 男人揉女人奶房视频60分| 亚洲国产精品无码av| 男人天堂av片| 蜜臀av色欲a片无码精品一区| 裸体裸乳免费看| 妞干网这里只有精品| 国产麻豆电影在线观看| 亚洲女人在线观看| 亚洲制服在线观看| 91蝌蚪视频在线| 久久久无码中文字幕久...| 中文字幕一区二区三区四区五区人 | 热99这里只有精品| 黄色一级片播放| 任你操这里只有精品| 婷婷丁香激情网| 在线视频一二区| 中文字幕の友人北条麻妃| 91精品国产毛片武则天| 日本一级黄视频| 国产91在线免费| 污污视频网站免费观看| 加勒比av中文字幕| 麻豆映画在线观看| 毛片在线视频播放| www.日日操| 99精品视频网站| 少妇高潮毛片色欲ava片| 91av俱乐部| 视频一区二区视频| 尤物av无码色av无码| 国产91色在线观看| 日产精品久久久久久久蜜臀| 久草资源站在线观看| 欧美日韩精品区别| 国产二区视频在线| 男人添女人下面免费视频| 手机在线观看日韩av| 日韩手机在线观看视频| 四虎免费在线观看视频| 女性女同性aⅴ免费观女性恋 | 黄色高清视频网站| 黄色一级视频播放| 国产真人做爰毛片视频直播| 欧美v在线观看|