校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > JavaScript正則表達式下之相關方法

JavaScript正則表達式下之相關方法

熱門標簽:實用地圖標注app 宿遷智能外呼系統供應商 地圖標注商戶中心要收錢多少 400免費電話去哪申請 地圖標注字母的軟件 線上教育ai外呼系統 菏澤智能ai電銷機器人銷售公司 鄂州人工智能電銷機器人軟件 css百度地圖標注位置顯示

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

RegExp實例對象有五個屬性

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

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

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

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

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

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

regObj.test(strObj)

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

復制代碼 代碼如下:

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() 找到了匹配的文本,則返回一個結果數組。否則,返回 null。除了數組元素和 length 屬性之外,exec() 方法還返回兩個屬性。index 屬性聲明的是匹配文本的第一個字符的位置。input 屬性則存放的是被檢索的字符串 string。

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

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

復制代碼 代碼如下:

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

兩次執行r的結果

復制代碼 代碼如下:

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

可以看到結果:

復制代碼 代碼如下:
1:13:25:3

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

strObj.search(RegObj)

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

復制代碼 代碼如下:

'a1b2c3'.search(/\d/g); //1'a1b2c3'.search(/\d/); //1

strObj.match(RegObj)

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

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

復制代碼 代碼如下:

var r='aaa123456'.match(/\d/);

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

復制代碼 代碼如下:

var r='aaa123456'.match(/\d/g);

strObj.replace(regObj,replaceStr)

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

復制代碼 代碼如下:

'abcabcabc'.replace('bc','X'); //aXabcabc

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

復制代碼 代碼如下:

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

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

復制代碼 代碼如下:

'1%2%>34%567%>89'.replace(/%(\d+)%>/g,'@#$1#@');//1@#2#@34@#567#@89

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

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

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

復制代碼 代碼如下:

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

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

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

2.第二個參數是正則表達式分組內容,沒有分組則沒有該參數

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

4.第四個參數則是原字符串

復制代碼 代碼如下:

'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

 

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

復制代碼 代碼如下:
'%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%>

根據這種參數replace可以實現很多強大的功能,尤其是在復雜的字符串替換語句中經常使用。

strObj.split(regObj)

我們經常使用split方法把字符串分割為字符數組

復制代碼 代碼如下:
'a,b,c,d'.split(','); //["a", "b", "c", "d"]

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

復制代碼 代碼如下:
'a1b2c3d'.split(/\d/); //["a", "b", "c", "d"]

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

您可能感興趣的文章:
  • js正則表達式學習和總結(必看篇)
  • js正則表達式驗證URL函數代碼(方便多個正則對比)
  • js匹配網址url的正則表達式集合
  • js正則表達式注冊頁面表單驗證
  • Javascript校驗密碼復雜度的正則表達式
  • JS正則表達式匹配檢測各種數值類型(數字驗證)
  • JavaScript中一些常用的正則表達式(推薦)
  • JS使用正則表達式過濾多個詞語并替換為相同長度星號的方法
  • js利用正則表達式檢驗輸入內容是否為網址
  • JS去除空格和換行的正則表達式(推薦)
  • JavaScript正則表達式上之基本語法(推薦)
  • JavaScript 中的正則表達式(推薦)
  • 利用js正則表達式校驗正數、負數、和小數

標簽:池州 咸陽 梅州 六安 鞍山 三亞 恩施 綿陽

巨人網絡通訊聲明:本文標題《JavaScript正則表達式下之相關方法》,本文關鍵詞  JavaScript,正則,表達式,下之,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《JavaScript正則表達式下之相關方法》相關的同類信息!
  • 本頁收集關于JavaScript正則表達式下之相關方法的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    激情综合网最新| 日韩激情中文字幕| 欧美精品一区二| 3d动漫精品啪啪| 欧美日韩亚洲国产综合| 色综合久久66| 日本韩国欧美在线| 99久久国产免费看| av不卡在线播放| 一本久道中文字幕精品亚洲嫩| 成人视屏免费看| 99视频精品在线| 色综合一个色综合| 欧美写真视频网站| 欧美精品免费视频| 日韩视频在线永久播放| 精品国产不卡一区二区三区| 久久精品一区二区| 亚洲欧洲另类国产综合| 亚洲欧美激情小说另类| 亚洲小少妇裸体bbw| 午夜视频在线观看一区二区| 日韩专区欧美专区| 久久se精品一区精品二区| 国产精品自产自拍| voyeur盗摄精品| 在线观看国产日韩| 4438x成人网最大色成网站| 91精品国产色综合久久不卡电影| 欧美电视剧在线观看完整版| 国产精品美女久久久久久| 国产精品国产三级国产普通话蜜臀 | 成人激情黄色小说| 91免费版在线| 777a∨成人精品桃花网| 久久新电视剧免费观看| 自拍偷在线精品自拍偷无码专区| 亚洲五码中文字幕| 国产一区二区三区免费看| 色婷婷国产精品| 91麻豆精品国产自产在线| 久久亚洲影视婷婷| 一区二区三区在线免费播放| 蜜桃视频一区二区| 99国产精品久久久久久久久久久| 884aa四虎影成人精品一区| 日本一区免费视频| 日韩国产精品久久久| 成人av电影在线观看| 欧美一级精品大片| 亚洲欧美经典视频| 国产乱子伦视频一区二区三区| 在线观看网站黄不卡| 国产亚洲精品超碰| 亚洲va天堂va国产va久| 成人激情文学综合网| 91精品国产一区二区| 亚洲少妇中出一区| 国产主播一区二区三区| 欧美性感一区二区三区| 日本一区二区三区国色天香| 免费一区二区视频| 欧美亚洲自拍偷拍| 国产精品美女一区二区三区| 国产在线精品一区二区不卡了| 欧美最新大片在线看| 国产精品色在线观看| 久久99精品国产麻豆不卡| 欧美综合一区二区三区| 中文字幕亚洲一区二区av在线| 激情偷乱视频一区二区三区| 777亚洲妇女| 亚洲制服丝袜av| 精品国产sm最大网站| 国产91在线|亚洲| 日韩天堂在线观看| 蜜臀a∨国产成人精品| 欧美三级电影一区| 亚洲一区二区av电影| 99久久精品国产导航| 自拍偷拍国产亚洲| jiyouzz国产精品久久| 国产精品午夜电影| 波多野结衣亚洲| 亚洲国产精品二十页| 成人的网站免费观看| 中文字幕一区二区三区视频| 成人黄色免费短视频| 国产精品视频看| 色综合久久99| 午夜影院久久久| 欧美三级午夜理伦三级中视频| 亚洲成av人影院| 日韩欧美亚洲一区二区| 国产一区欧美日韩| 国产精品久久久久久久第一福利 | 国产激情视频一区二区三区欧美 | 日韩亚洲欧美一区| 精品亚洲国产成人av制服丝袜 | 国产欧美va欧美不卡在线| 国产成人免费视频网站 | 亚洲欧美在线观看| 色婷婷av一区二区三区软件 | 蜜臀av性久久久久蜜臀av麻豆| 日韩一区二区影院| 国产在线日韩欧美| 国产精品久久久久精k8| 色噜噜狠狠色综合欧洲selulu| 一区二区三区不卡在线观看 | 免费在线看一区| 国产欧美日韩在线观看| 91免费在线看| 日韩电影免费在线观看网站| 久久久影院官网| 色婷婷久久久亚洲一区二区三区| 亚洲第一激情av| 精品成人a区在线观看| 99久久久国产精品| 日韩主播视频在线| 国产精品久久久久久亚洲毛片 | 精品国产凹凸成av人导航| 成人免费av在线| 午夜精品国产更新| 国产亚洲午夜高清国产拍精品| 97国产精品videossex| 另类小说视频一区二区| 日韩美女久久久| 欧美不卡一区二区三区四区| 91视频免费看| 麻豆精品精品国产自在97香蕉 | 一区二区三区四区在线免费观看 | 成人av在线播放网站| 日韩vs国产vs欧美| 亚洲视频一区在线观看| 久久这里只有精品6| 欧美性色综合网| 成人免费黄色大片| 精品一区二区三区久久| 亚洲在线成人精品| 国产精品素人视频| 欧美mv日韩mv| 欧美精品在欧美一区二区少妇| 成人99免费视频| 精品一区二区三区在线播放| 亚洲午夜精品久久久久久久久| 国产精品国产馆在线真实露脸 | 国产91丝袜在线播放0| 精品一区二区久久| 日韩精彩视频在线观看| 亚洲一区二区五区| 亚洲乱码一区二区三区在线观看| 国产日韩欧美综合在线| 精品成人在线观看| 91精品国产综合久久精品麻豆| 在线观看视频一区二区欧美日韩| 91蜜桃婷婷狠狠久久综合9色| 高清shemale亚洲人妖| 国产福利一区二区三区| 韩国精品一区二区| 国产在线麻豆精品观看| 国产在线播放一区三区四| 国产一区二区三区精品欧美日韩一区二区三区| 偷拍与自拍一区| 丝袜诱惑亚洲看片| 日韩1区2区日韩1区2区| 免费日本视频一区| 久久超碰97中文字幕| 久久精品国产久精国产| 久久精品国产99久久6| 九色综合狠狠综合久久| 国产一区二区三区视频在线播放| 国产精品一区三区| 波多野结衣视频一区| 在线观看不卡视频| 4438成人网| 国产欧美一区二区三区沐欲| 日本一区二区三区四区| 亚洲激情中文1区| 天堂在线亚洲视频| 国产伦理精品不卡| 91在线一区二区| 欧美乱熟臀69xxxxxx| 日韩网站在线看片你懂的| 久久精品一区二区| 亚洲在线观看免费视频| 久久超碰97中文字幕| av在线播放成人| 欧美日高清视频| 久久久综合网站| 中文字幕综合网| 麻豆国产精品视频| 99精品欧美一区二区三区综合在线| 欧美日韩在线综合| 久久久久久9999| 一级女性全黄久久生活片免费| 九一久久久久久| 欧美体内she精视频| 久久精品一二三| 天堂av在线一区| 91麻豆福利精品推荐|