亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > JavaScript > 正文

javascript中replace( )方法的使用

2024-05-06 16:18:36
字體:
來源:轉載
供稿:網友
JavaScript中replace函數方法是返回根據正則表達式進行文字替換后的字符串的復制。使用方法:其中stringObj是必選項。要執行該替換的 String 對象或字符串文字。
 

最近在瀏覽一些阿里的前端面試題,其中有一題涉及了javascript中replace( )方法的使用,下面是原題:

“說出以下函數的作用是?空白區域應該填寫什么?”

 

  1. // define  
  2. (function (window) {  
  3.   function fn(str) {  
  4.     this.str = str;  
  5.   }  
  6.   fn.prototype.format = function () {  
  7.     var arg = ______;  
  8.     return this.str.replace(_______, function (a, b) {  
  9.       return arg[b] || '';  
  10.     });  
  11.   }  
  12.   window.fn = fn;  
  13. })(window);  
  14. // use  
  15. (function(){  
  16.   var t = new fn('<p><a href="{0}">{1}</a><span>{2}</span></p>'); 
  17.   console.log( t.format('http://www.alibaba.com''Alibaba''Welcome') );  
  18. })(); 

以下是分析過程(感覺還是弄個編號,個人覺得比較有條理一些)

1、因為本題也涉及了到其它的知識點,如匿名函數、原型等知識點,但不是本次討論的重點。

2、根據題面,我們知道,該題的源碼類似于寫一個模板引擎。將模板里的‘{1}'之類的占位符替換成傳給它的參數。所以arg應該就是arguments。但是!??!由于arg不是數組,而是一個類數組對象(不懂的可自行百度(u_u)),所以我們需要進行一些轉換,

 

復制代碼代碼如下:
var arg=Array.prototype.slice.call(arguments,0);

 

3、等號右邊也就是第一空的答案了。說了這么多,那么接下來第二空就是我們要討論的重點了~~~~~~我們都知道第二空是要通過正則找出占位符,并根據占位符內的數字將其替換成arg數組內的字符串,說實話replace方法的第二個參數為函數的情況很少遇到,一般我們遇到都是這樣的,看下面的代碼:

 

復制代碼代碼如下:

 var pattern=/8(.*)8/;
 var str='This is a 8baidu8';
 document.write(str.replace(pattern,'<strong>$1</strong>')); 

 

4、由于replace第二個參數是函數的情況比較少,那么我們就來重點談談第二個參數為函數的情形。

首先這是replace函數的語法:stringobject.replace(regexp/substr,replacement)

其中regexp/substr必需。規定字符串或要替換的模式的regexp對象。(請注意,如果該值是一個字符串,則將它作為要檢索的直接量文本模式,而不是首先被轉換為 regexp 對象。) replacement必需。一個字符串值。規定了替換文本或生成替換文本的函數。最后返回一個新的字符串,是用replacement替換了regexp的第一次匹配或所有匹配之后得到的。

5、ECMAScript規定,replace()方法的參數replacement可以是函數而不是字符串。在這種情況下,每個匹配都調用該函數,它返回的字符串將替換文本使用。第一個參數表示匹配到的字符,第二個參數表示匹配到的字符最小索引位置(RegExp.index),第三個參數表示被匹配的字符串(RegExp.input)。

6、所以第二空可以這樣寫://{(/d+)/}/g,放在語句中完整為:

 

復制代碼代碼如下:

return this.str.replace(//{(/d+)/}/g, function (a, b) {  
    return arg[b] || '';  
});

 

執行第一次匹配時,{0}被替代為arg[0]
執行第一次匹配時,{1}被替代為arg[1]
執行第一次匹配時,{2}被替代為arg[2]

7、以上就是js字符串方法replace()的第二個參數為函數講解(有不完善的地方,自行補充),當然這道面試題也解決了~~~~~

以上所述就是本文的全部內容了,希望大家能夠喜歡。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品亚洲一区二区三区| 国内精品久久久久久久久| 自拍偷拍亚洲精品| 欧美日韩性生活视频| 日韩精品极品视频| 日韩精品一二三四区| 91九色国产社区在线观看| 欧美日韩亚洲成人| 精品美女国产在线| 国产精品中文在线| 91久久精品在线| 日韩中文视频免费在线观看| 乱亲女秽乱长久久久| 日韩美女福利视频| 亚洲国产成人精品久久| 亚洲人在线观看| 日韩av影片在线观看| 日韩成人中文电影| 亚洲欧洲在线观看| 欧洲美女免费图片一区| 秋霞成人午夜鲁丝一区二区三区| 亚洲娇小xxxx欧美娇小| 91精品视频免费观看| 日韩欧美在线看| 欧美午夜宅男影院在线观看| 成人激情视频网| 日韩成人在线观看| 欧美怡春院一区二区三区| 欧美午夜片在线免费观看| 国产精品久久久久久婷婷天堂| 久久视频在线播放| 亚洲最大成人免费视频| 国产成人久久久精品一区| 日日狠狠久久偷偷四色综合免费| 国产精品av在线播放| 欧美午夜电影在线| 精品亚洲一区二区| 亚洲激情电影中文字幕| 日本高清+成人网在线观看| 国产女精品视频网站免费| 狠狠操狠狠色综合网| 欧美成人免费网| 欧洲一区二区视频| 国产午夜精品一区理论片飘花| 欧美日韩中文在线| 亚洲国产中文字幕久久网| 日韩在线欧美在线国产在线| 97在线看免费观看视频在线观看| 69久久夜色精品国产69| 在线看片第一页欧美| 在线视频欧美日韩| 51ⅴ精品国产91久久久久久| 91在线中文字幕| www.亚洲男人天堂| 日韩av影视综合网| 中文字幕九色91在线| 亚洲成人动漫在线播放| 欧洲亚洲在线视频| 国产91在线播放精品91| 日韩大片免费观看视频播放| 日韩精品免费视频| 久久久精品久久久久| 久久久国产精品免费| 91探花福利精品国产自产在线| 97成人精品视频在线观看| 久久综合五月天| 日韩精品一区二区视频| 久久久精品影院| 国产日韩欧美在线看| 久久久免费观看视频| 亚洲国模精品一区| 精品欧美国产一区二区三区| 色综合亚洲精品激情狠狠| 日韩av最新在线观看| 久久网福利资源网站| 日韩在线视频观看| 亚洲午夜av久久乱码| 国产午夜精品视频免费不卡69堂| 中文国产亚洲喷潮| 日韩精品丝袜在线| 亚洲欧美成人网| 亚洲最大中文字幕| 欧美一区二区三区精品电影| 国产精品91久久| 日韩成人在线观看| 欧美日韩在线视频观看| 欧美小视频在线观看| 中国china体内裑精亚洲片| 国产一区二区色| 亚洲天堂精品在线| 欧美成人精品不卡视频在线观看| 97精品国产91久久久久久| 欧美成人免费网| 亚洲免费福利视频| 亚洲欧美国产精品久久久久久久| 欧美黄色小视频| 国产精品一区二区3区| 国产日产久久高清欧美一区| 亚洲欧美另类中文字幕| 欧美激情欧美狂野欧美精品| 国产亚洲一区二区精品| 91久久精品日日躁夜夜躁国产| 国产精品入口福利| 亚洲男人的天堂在线| 亚洲网址你懂得| 亚洲伊人久久大香线蕉av| 国产一区二区视频在线观看| 91在线看www| 欧洲成人性视频| 亚洲精品美女在线观看播放| 日韩av免费在线看| 国产精品国产自产拍高清av水多| 最近的2019中文字幕免费一页| 日韩精品视频中文在线观看| 亚洲va久久久噜噜噜久久天堂| 日韩少妇与小伙激情| 欧美国产日韩一区二区三区| 精品一区精品二区| 欧美成人精品在线视频| 日韩中文av在线| 青草热久免费精品视频| 精品久久久国产| 亚洲视频在线观看| 亚洲a级在线播放观看| 亚洲女同精品视频| 日韩一级裸体免费视频| 综合国产在线观看| 精品爽片免费看久久| 日韩欧美国产高清91| 欧美韩日一区二区| www国产精品com| 亚洲国产精品一区二区久| 午夜精品久久久久久久99热| 亚洲xxxxx| 欧美最猛性xxxxx免费| 日韩中文字幕亚洲| 国产精品18久久久久久麻辣| 欧美资源在线观看| 久久精品99久久久久久久久| 日韩激情视频在线| 国产亚洲欧美视频| 日韩av免费一区| 欧美性高潮床叫视频| 动漫精品一区二区| 欧美性少妇18aaaa视频| 国产精品久久77777| 欧美一区二区影院| 亚洲一区美女视频在线观看免费| 久久精品国产久精国产思思| 日本免费一区二区三区视频观看| 久久噜噜噜精品国产亚洲综合| 美日韩在线视频| 国产精品久久久精品| 在线播放国产精品| 另类天堂视频在线观看| 国产一区视频在线播放| 亚洲一区国产精品| 欧美国产一区二区三区| 亚洲国产精品成人精品| 欧美性生活大片免费观看网址| 国产精品欧美日韩| 亚洲精品日韩激情在线电影| 国产精品一区二区三区成人| 97色在线播放视频|