国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術(shù)文章
文章詳情頁

javascript - 這個正則表達(dá)式為什么總是只能替換掉一個字符串??

瀏覽:114日期:2023-09-04 15:00:43

問題描述

我是想把雙大括號里的包括字符串替換成真正的值,但是總是只能替換掉一個,不知道為什么?

var tpl = ’/cube_xinbao_dial_result/{{report_type}}/{{query}}’;var data = {report_type:1, query: ’2323’}function render(tpl, data){ var re = /{{([^}]+)?}}/g; var match = ’’; while(match = re.exec(tpl)){tpl = tpl.replace(match[0],data[match[1]]); } return tpl;}console.log(render(tpl,data));

問題解答

回答1:

ad

回答2:

String.replace 也支持正則表達(dá)式當(dāng)作參數(shù)哦,給你改寫了一下

var tpl = ’/cube_xinbao_dial_result/{{report_type}}/{{query}}’;var data = {report_type:1, query: ’2323’}function render(tpl, data){ var re = /{{([^}]+)?}}/g; return tpl.replace(re, function($0, $1, $2){if( $1 in data ){ return data[$1];}else{ return '[DATA.'+ $1.toUpperCase() + ']'; //如果沒有,提示標(biāo)簽錯誤} });}console.log(render(tpl,data));/* /cube_xinbao_dial_result/1/2323*/console.log(render(tpl,{query:1234}));/* /cube_xinbao_dial_result/[DATA.REPORT_TYPE]/1234*/

如果執(zhí)意要使用你原來的方式,需要取消掉全局參數(shù)g

var tpl = ’/cube_xinbao_dial_result/{{report_type}}/{{query}}’;var data = {report_type:1, query: ’2323’}function render(tpl, data){ var re = /{{([^}]+)?}}/; //不要全局匹配就可以 var match = ’’; while(match = re.exec(tpl)){tpl = tpl.replace(match[0],data[match[1]]); } return tpl;}console.log(render(tpl,data));/* /cube_xinbao_dial_result/1/2323*/回答3:

RegExp對象,有個屬性,lastIndex,代表一個整數(shù),標(biāo)示開始下一次匹配的字符位置。。當(dāng)exec第一次執(zhí)行成功后,lastIndex為匹配項(xiàng)位置+1。正因?yàn)檫@樣,再次調(diào)用才會會獲得下一個匹配項(xiàng)。回到你這個例子,第一次循環(huán)后,re的lastIndex為40,而此時tpl變?yōu)榱藅pl='/cube_xinbao_dial_result/1/{{query}}'顯然你要匹配的query的位置是在40之前的,所以再次匹配時失敗,exec返回null,循環(huán)跳出。

回答4:

var tpl = ’/cube_xinbao_dial_result/{{report_type}}/{{query}}’;var data = {report_type:1, query: ’223’}function render(tpl, data){ var re = /{{([^}]+)?}}/g; var tpl2=tpl; tpl.match(re).forEach(function (val) {tpl2= tpl2.replace(val,data[val.substring(2,val.length-2)]); }); return tpl2;}console.log(render(tpl,data));

輸出結(jié)果

/cube_xinbao_dial_result/1/223

標(biāo)簽: JavaScript
相關(guān)文章:
主站蜘蛛池模板: 酒色影院 | 台湾香港澳门三级在线 | 美女黄页网站 | 亚洲在线网 | 老外黑人欧美一级毛片 | 亚洲在线视频播放 | 欧美成在人线a免费 | 18在线网站 | 天堂在线视频网站 | 国产高清在线精品 | 国产成人精品系列在线观看 | 亚洲品质自拍视频 | 免费一看一级毛片全播放 | 亚洲男人第一天堂 | 日韩欧美亚洲中字幕在线播放 | 女人张开双腿让男人桶完整 | 免费久久精品视频 | 69凹凸国产成人精品视频 | 国产一区二区在线视频播放 | 久久精品免观看国产成人 | 欧美成性色 | 波多野结衣一级 | 欧美精品久久 | 久久久久久久国产 | 国产精品亚洲一区二区在线观看 | 高清午夜看片a福利在线观看琪琪 | 草草影院私人免费入口 | 亚洲在线视频观看 | 中文字幕精品在线观看 | 视频一二三区 | 国内亚州视频在线观看 | 91在线免费公开视频 | 欧美一级欧美一级在线播放 | 特黄aa级毛片免费视频播放 | 一区二区三区免费在线观看 | 成人亚洲欧美日韩中文字幕 | 美女黄视频网站 | 亚洲高清一区二区三区四区 | 免费区欧美一级毛片精品 | 黄色三级网络 | 夜色成人性y |