中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久

詳解JS正則replace的使用方法
來源:易賢網 閱讀:1065 次 日期:2016-07-22 16:33:25
溫馨提示:易賢網小編為您整理了“詳解JS正則replace的使用方法”,方便廣大網友查閱!

這篇文章主要為大家詳細介紹了javascript正則replace的使用方法,感興趣的朋友可以參考一下

在講replace的高級應用之前,我們先簡單梳理一下JS正則中的幾個重要的知識點,以幫助你對基礎知識的回顧,然后再講解JS正則表達式在replace中的使用,以及常見的幾個經典案例。 

一、正則表達式的創建

JS正則的創建有兩種方式: new RegExp() 和 直接字面量。

//使用RegExp對象創建

var regObj = new RegExp("(^\s+)|(\s+$)","g");

//使用直接字面量創建

var regStr = /(^\s+)|(\s+$)/g;

其中 g 表示全文匹配,與之相關的還有 i 和m,i 表示匹配時忽略大小寫,m 表示多行匹配,如果多個條件同時使用時,則寫成:gmi 

二、()、[]、{} 的區別

() 的作用是提取匹配的字符串。表達式中有幾個()就會得到幾個相應的匹配字符串。比如 (\s+) 表示連續空格的字符串。

[]是定義匹配的字符范圍。比如 [a-zA-Z0-9] 表示字符文本要匹配英文字符和數字。

{}一般用來表示匹配的長度,比如 \d{3} 表示匹配三個空格,\d[1,3]表示匹配1~3個空格。

三、^ 和 $

^ 匹配一個字符串的開頭,比如 (^a) 就是匹配以字母a開頭的字符串

$ 匹配一個字符串的結尾,比如 (b$) 就是匹配以字母b結尾的字符串

^ 還有另個一個作用就是取反,比如[^xyz] 表示匹配的字符串不包含xyz

需要注意的是:如果^出現在[]中一般表示取反,而出現在其他地方則是匹配字符串的開頭

四、\d  \s  \w  .

\d 匹配一個非負整數, 等價于 [0-9]

\s 匹配一個空白字符

\w 匹配一個英文字母或數字,等價于[0-9a-zA-Z]

.   匹配除換行符以外的任意字符,等價于[^\n]

五、* + ?

* 表示匹配前面元素0次或多次,比如 (\s*) 就是匹配0個或多個空格

+ 表示匹配前面元素1次或多次,比如 (\d+) 就是匹配由至少1個整數組成的字符串

? 表示匹配前面元素0次或1次,相當于{0,1} ,比如(\w?) 就是匹配最多由1個字母或數字組成的字符串

六、test 、match

前面的大都是JS正則表達式的語法,而test則是用來檢測字符串是否匹配某一個正則表達式,如果匹配就會返回true,反之則返回false

/\d+/.test("123") ; //true

/\d+/.test("abc") ; //false

match是獲取正則匹配到的結果,以數組的形式返回

"186a619b28".match(/\d+/g); // ["186","619","28"] 

以上基本上是我經常用到的基礎知識,不是很全面,不常用的就沒有列出來,因為列出來也只是擺設,反而混淆主次!

七、replace

replace 本身是JavaScript字符串對象的一個方法,它允許接收兩個參數:

replace([RegExp|String],[String|Function])

第1個參數可以是一個普通的字符串或是一個正則表達式

第2個參數可以是一個普通的字符串或是一個回調函數

如果第1個參數是RegExp, JS會先提取RegExp匹配出的結果,然后用第2個參數逐一替換匹配出的結果

如果第2個參數是回調函數,每匹配到一個結果就回調一次,每次回調都會傳遞以下參數:

result: 本次匹配到的結果

$1,...$9: 正則表達式中有幾個(),就會傳遞幾個參數,$1~$9分別代表本次匹配中每個()提取的結果,最多9個

offset:記錄本次匹配的開始位置

source:接受匹配的原始字符串

以下是replace和JS正則搭配使用的幾個常見經典案例: 

(1)實現字符串的trim函數,去除字符串兩邊的空格

String.prototype.trim = function(){

  //方式一:將匹配到的每一個結果都用""替換

  return this.replace(/(^\s+)|(\s+$)/g,function(){

    return "";

  });

  //方式二:和方式一的原理相同

  return this.replace(/(^\s+)|(\s+$)/g,'');

};

^\s+ 表示以空格開頭的連續空白字符,\s+$ 表示以空格結尾的連續空白字符,加上() 就是將匹配到的結果提取出來,由于是 | 的關系,因此這個表達式最多會match到兩個結果集,然后執行兩次替換:

String.prototype.trim = function(){

  /**

   * @param rs:匹配結果

   * @param $1:第1個()提取結果

   * @param $2:第2個()提取結果

   * @param offset:匹配開始位置

   * @param source:原始字符串

   */

  this.replace(/(^\s+)|(\s+$)/g,function(rs,$1,$2,offset,source){

    //arguments中的每個元素對應一個參數

    console.log(arguments);

  });

};

" abcd ".trim();

輸出結果:

[" ", " ", undefined, 0, " abcd "] //第1次匹配結果

[" ", undefined, " ", 5, " abcd "] //第2次匹配結果

(2)提取瀏覽器url中的參數名和參數值,生成一個key/value的對象

function getUrlParamObj(){

  var obj = {};

  //獲取url的參數部分

  var params = window.location.search.substr(1);

  //[^&=]+ 表示不含&或=的連續字符,加上()就是提取對應字符串

  params.replace(/([^&=]+)=([^&=]*)/gi,function(rs,$1,$2){

    obj[$1] = $2;

  });

  return obj;

}

/([^&=]+)=([^&=]*)/gi 每次匹配到的都是一個完整key/value,形如 xxxx=xxx, 每當匹配到一個這樣的結果時就執行回調,并傳遞匹配到的key和value,對應到$1和$2

(3)在字符串指定位置插入新字符串

String.prototype.insetAt = function(str,offset){

  //使用RegExp()構造函數創建正則表達式

  var regx = new RegExp("(.{"+offset+"})");

  return this.replace(regx,"$1"+str);

};

"abcd".insetAt('xyz',2); //在b和c之間插入xyz

>> "abxyzcd"

當offset=2時,正則表達式為:(^.{2})  .表示除\n之外的任意字符,后面加{2} 就是匹配以數字或字母組成的前兩個連續字符,加()就會將匹配到的結果提取出來,然后通過replace將匹配到的結果替換為新的字符串,形如:結果=結果+str

(4) 將手機號12988886666轉化成129 8888 6666

function telFormat(tel){

  tel = String(tel);

  //方式一

  return tel.replace(/(\d{3})(\d{4})(\d{4})/,function (rs,$1,$2,$3){

    return $1+" "+$2+" "+$3

  });

  //方式二

  return tel.replace(/(\d{3})(\d{4})(\d{4})/,"$1 $2 $3");

}

(\d{3}\d{4}\d{4}) 可以匹配完整的手機號,并分別提取前3位、4-7位和8-11位,"$1 $2 $3" 是在三個結果集中間加空格組成新的字符串,然后替換完整的手機號。

(5) 實現函數escapeHtml,將<, >, &, " 進行轉義

function escapeHtml(str) {

  //匹配< > " &

  return str.replace(/[<>"&]/g, function(rs) {

    switch (rs) {

      case "<":

        return "<";

      case ">":

        return ">";

      case "&":

        return "&";

      case "\"":

        return """;

    }

  });

}

以上就是本文的全部內容,希望對大家的學習有所幫助。

更多信息請查看網絡編程
易賢網手機網站地址:詳解JS正則replace的使用方法
由于各方面情況的不斷調整與變化,易賢網提供的所有考試信息和咨詢回復僅供參考,敬請考生以權威部門公布的正式信息和咨詢為準!

2026上岸·考公考編培訓報班

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關于我們 | 聯系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
云南網警備案專用圖標
聯系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權所有:易賢網
云南網警報警專用圖標
中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久
久久婷婷亚洲| 亚洲精品影视| 老司机免费视频久久| 国产美女精品| 欧美在线观看视频| 国产专区综合网| 牛牛影视久久网| 亚洲黄色性网站| 欧美日韩成人一区| 亚洲一区国产精品| 狠狠色综合网| 欧美日韩亚洲系列| 久久国产精品一区二区三区四区| 国产深夜精品| 麻豆精品传媒视频| 一区二区av在线| 国产午夜精品视频免费不卡69堂| 另类欧美日韩国产在线| 夜夜嗨av一区二区三区网页| 国产精品亚洲片夜色在线| 久久精品国产v日韩v亚洲| 亚洲经典在线看| 欧美色中文字幕| 久久精品99国产精品酒店日本| 亚洲电影网站| 国产精品精品视频| 久久免费国产| 一本一道久久综合狠狠老精东影业| 国产欧美日韩伦理| 欧美aa在线视频| 欧美一区二区三区婷婷月色 | 久久精品一二三区| 亚洲国产天堂久久综合| 国产日韩在线亚洲字幕中文| 蜜桃视频一区| 性欧美xxxx视频在线观看| 在线播放不卡| 国产一区二区无遮挡| 欧美理论在线播放| 性做久久久久久| 在线视频中文亚洲| 尤物99国产成人精品视频| 国产精品久久久久久久久| 久久综合久久综合久久综合| 亚洲欧美激情精品一区二区| 99re视频这里只有精品| 红桃视频国产一区| 狠狠干综合网| 国产午夜精品一区理论片飘花 | 欧美激情精品| 久久精品中文| 久久激情综合| 欧美一级日韩一级| 午夜视频精品| 国产精品嫩草影院一区二区| 欧美日韩成人综合在线一区二区| 免费观看日韩| 欧美风情在线观看| 欧美国产乱视频| 欧美大片一区| 欧美裸体一区二区三区| 欧美高清在线观看| 欧美日韩在线亚洲一区蜜芽| 欧美日本在线看| 欧美性猛交xxxx乱大交退制版| 欧美国产视频日韩| 欧美精品首页| 欧美日韩一区二区三区在线看| 欧美日韩一卡二卡| 国产精品成人久久久久| 欧美性色综合| 国产偷国产偷精品高清尤物| 国产日韩精品视频一区二区三区| 国内精品久久久久久久果冻传媒| 国产婷婷色综合av蜜臀av| 影音先锋在线一区| 娇妻被交换粗又大又硬视频欧美| 亚洲国语精品自产拍在线观看| 亚洲国产精品久久人人爱蜜臀 | 亚洲精品国产精品国自产观看浪潮| 国产在线拍揄自揄视频不卡99| 一区二区三区成人精品| 国产精品日本欧美一区二区三区| 国语对白精品一区二区| 亚洲一二三四区| 一区二区三区色| 亚洲欧美成人精品| 欧美亚洲视频在线观看| 久久精品盗摄| 欧美精品色一区二区三区| 欧美亚州一区二区三区| 国产亚洲一级高清| 亚洲大片免费看| 一区二区三区欧美日韩| 久久精品国产亚洲精品| 麻豆91精品| 国产精品亚洲精品| 伊人成年综合电影网| 亚洲一区二区三区高清| 美日韩丰满少妇在线观看| 在线播放国产一区中文字幕剧情欧美| 夜夜嗨av一区二区三区| 欧美在线视频不卡| 欧美日韩一区二区国产| 国内免费精品永久在线视频| 中文无字幕一区二区三区| 久久久久国产精品一区| 欧美日韩在线视频一区二区| 亚洲电影专区| 香蕉av福利精品导航| 欧美日韩一区二区三区在线视频 | 一区免费观看| 亚洲欧美激情一区| 欧美成人蜜桃| 激情av一区二区| 亚洲欧美日韩直播| 国产精品成人aaaaa网站| 亚洲国产精品久久久久| 久久免费视频网站| 国产亚洲网站| 午夜精品久久久久久久白皮肤| 欧美欧美全黄| 亚洲黑丝在线| 免费看黄裸体一级大秀欧美| 国产在线拍偷自揄拍精品| 亚洲影院在线观看| 欧美伦理a级免费电影| 精品电影一区| 久热这里只精品99re8久| 国产偷自视频区视频一区二区| 亚洲在线观看| 国产精品theporn88| 在线亚洲国产精品网站| 欧美日韩一区精品| 亚洲国产日韩在线一区模特| 猛干欧美女孩| 在线欧美福利| 欧美韩日一区二区| 91久久国产综合久久蜜月精品| 欧美高清视频| 亚洲精品乱码久久久久久黑人| 欧美经典一区二区三区| 在线电影一区| 欧美在线视频导航| 在线免费不卡视频| 久久综合久久久| 亚洲国产婷婷| 免费亚洲一区| av成人老司机| 欧美日韩爆操| 亚洲欧美日韩天堂| 国产亚洲一区在线播放| 蜜桃av噜噜一区| 日韩视频一区二区三区在线播放| 久久一区二区精品| 日韩视频精品在线| 欧美日韩国产成人精品| 亚洲综合色视频| 国产三级欧美三级日产三级99| 久久精品日韩一区二区三区| 在线电影一区| 久久久综合激的五月天| 亚洲人体偷拍| 欧美日韩综合另类| 久久se精品一区精品二区| 国产一区二区中文| 欧美精品一区二区视频| 一本一道久久综合狠狠老精东影业| 国产精品乱码| 老鸭窝亚洲一区二区三区| 在线日韩一区二区| 国产精品久久久久一区二区三区共 | 欧美激情久久久久| 亚洲综合第一页| 伊人久久大香线蕉av超碰演员| 欧美成人免费va影院高清| 亚洲视频1区2区| 在线观看日韩av电影| 欧美成人免费一级人片100| 亚洲综合欧美| 亚洲欧洲在线一区| 国产精品亚洲综合久久| 欧美激情免费在线| 中文在线资源观看网站视频免费不卡 | 欧美日韩亚洲国产精品| 久久久精品日韩| 亚洲精选中文字幕| 狠狠色伊人亚洲综合网站色| 欧美日韩在线免费观看| 欧美日韩亚洲一区二区三区| 午夜精品久久久99热福利| 亚洲日本成人网| 国内精品美女av在线播放| 欧美破处大片在线视频| 麻豆九一精品爱看视频在线观看免费| 亚洲色图在线视频| 亚洲乱码国产乱码精品精| 国产一区二区三区在线观看精品 | 欧美视频久久| 久久夜色精品国产|