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

首頁 > 編程 > JavaScript > 正文

JavaScript基于replace+正則實現ES6的字符串模版功能

2019-11-19 16:44:39
字體:
來源:轉載
供稿:網友

本文實例講述了JavaScript基于replace+正則實現ES6的字符串模版功能。分享給大家供大家參考,具體如下:

采用拼接字符串的形式,將 JSON 數據嵌入 HTML 中。開始時代碼量較少,暫時還可以接受。但當頁面結構復雜起來后,其弱點開始變得無法忍受起來:

書寫不連貫。每寫一個變量就要斷一下,插入一個 + 和 “。十分容易出錯。

無法重用。HTML 片段都是離散化的數據,難以對其中重復的部分進行提取。

無法很好地利用 標簽。這是 HTML5 中新增的一個標簽,標準極力推薦將 HTML 模板放入 標簽中,使代碼更簡潔。

replace+正則實現

項目剛開始用的數據拼接

function formatString() {    if (arguments.length === 0)      return null;    var str = arguments[0];    for (var i = 1; i < arguments.length; i++) {      var re = new RegExp('//{' + (i - 1) + '//}', 'gm');      str = str.replace(re, arguments[i]);    }    return str;},

第一個參數為需要渲染的數據模板,其他參數為數據:

formatString('{0},My name is {1}', 'everyMan', '吳孔云')

這種后期維護較麻煩,一旦更改順序,都需要更改~~就跟函數需要接收一大串參數一樣,我們盡量寫成對象的形式,

var myObject = maker(f,l,m,c,s);//不建議寫法var myObject = maker({//建議寫法   first : f,   last: l,   state:s,   city:c});

在網上搜索看到一個例子,可以類似實現ES6的字符串模版形式,博客是一個高中生寫的,戳鏈接 。

function render(template, context) {  //被轉義的的分隔符 { 和 } 不應該被渲染,分隔符與變量之間允許有空白字符  var tokenReg = /(//)?/{([^/{/}//]+)(//)?/}/g;  return template.replace(tokenReg, function (word, slash1, token, slash2) {    //如果有轉義的/{或/}替換轉義字符    if (slash1 || slash2) {      return word.replace('//', '');    }    // 切割 token ,實現級聯的變量也可以展開    var variables = token.replace(//s/g, '').split('.');    var currentObject = context;    var i, length, variable;    for (i = 0, length = variables.length; i < length; ++i) {      variable = variables[i];      currentObject = currentObject[variable];      // 如果當前索引的對象不存在,則直接返回空字符串。      if (currentObject === undefined || currentObject === null) return '';    }    return currentObject;  })}String.prototype.render = function (context) {  return render(this, context);};"{greeting}! My name is { author.name }.".render({  greeting: "Hi",  author: {    name: "hsfzxjy"  }});// Hi! My name is hsfzxjy.

擴展:ES6字符串模版API

ES6引入了一種新型的字符串字面量語法,我們稱之為模板字符串(template strings)。除了使用反撇號字符 ` 代替普通字符串的引號 ' 或 ” 外,它們看起來與普通字符串并無二致。

var a = 'kenny'`my name is ${a}` //"my name is kenny"

可以用bable編譯成ES5。

PS:這里再為大家提供2款非常方便的正則表達式工具供大家參考使用:

JavaScript正則表達式在線測試工具:
http://tools.VeVB.COm/regex/javascript

正則表達式在線生成工具:
http://tools.VeVB.COm/regex/create_reg

更多關于JavaScript相關內容感興趣的讀者可查看本站專題:《ECMAScript6(ES6)入門教程》、《JavaScript正則表達式技巧大全》、《JavaScript字符與字符串操作技巧總結》、《JavaScript數據結構與算法技巧總結》、《JavaScript錯誤與調試技巧總結》及《JavaScript數學運算用法總結

希望本文所述對大家JavaScript程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美高清视频一区二区| 国产精品久久久久久久久久久久| 亚洲裸体xxxx| 亚洲成人a**站| 成人黄色片网站| 国产成人精品999| 国产视频精品一区二区三区| 51久久精品夜色国产麻豆| 日韩免费黄色av| 久久久成人av| 成人国产精品久久久久久亚洲| 欧美日韩ab片| 国产在线观看精品一区二区三区| 亚洲精品久久久久久久久久久久| 亚洲国产高清自拍| 国产精品美女免费| 免费91麻豆精品国产自产在线观看| 91久久国产精品91久久性色| 91精品在线播放| 欧美国产乱视频| 91久久精品在线| 色999日韩欧美国产| 伊人久久久久久久久久| 久久69精品久久久久久久电影好| 国产不卡精品视男人的天堂| 欧美成人精品在线观看| 亚洲**2019国产| 国产综合久久久久| 一区二区三区精品99久久| 青青草国产精品一区二区| 亚洲网站在线播放| 日韩在线观看免费全| 黑人极品videos精品欧美裸| 国产一区二区三区在线观看视频| 国产欧美中文字幕| 国产不卡视频在线| 精品视频中文字幕| 亚洲sss综合天堂久久| 午夜免费日韩视频| 精品亚洲夜色av98在线观看| 久久久久久久国产| 国产不卡在线观看| 亚洲电影成人av99爱色| 日韩欧美有码在线| 日韩欧美国产一区二区| 97精品国产91久久久久久| 在线观看日韩专区| 午夜精品福利视频| 午夜精品国产精品大乳美女| 精品自拍视频在线观看| 日韩福利伦理影院免费| 91精品久久久久久久久中文字幕| 日本一欧美一欧美一亚洲视频| 久久免费高清视频| 中国日韩欧美久久久久久久久| 午夜欧美不卡精品aaaaa| 亚洲天堂色网站| 久久精品国产一区二区三区| 欧美亚洲视频在线观看| 在线看日韩欧美| 亚洲国产精品久久久久秋霞不卡| 久久精品国产视频| 日韩激情av在线免费观看| 日本精品久久久久久久| 欧美亚洲激情在线| 国产精品2018| 久久亚洲精品小早川怜子66| 欧美日韩美女在线观看| 亚洲国产日韩一区| 久久久999国产精品| 日韩黄色av网站| 国产91av在线| 亚洲**2019国产| 欧美乱大交xxxxx另类电影| 亚洲精品日韩欧美| 亚洲国产天堂久久国产91| 草民午夜欧美限制a级福利片| 夜夜嗨av一区二区三区四区| 日韩电影免费在线观看中文字幕| 欧美日韩一二三四五区| 2021久久精品国产99国产精品| 国产在线精品成人一区二区三区| 亚洲成人在线视频播放| 国产精品亚洲片夜色在线| 亚洲国产精品小视频| 亚洲v日韩v综合v精品v| 国产精品日日摸夜夜添夜夜av| 欧美成人精品激情在线观看| 亚洲xxxxx电影| 欧美日韩综合视频网址| 国产日本欧美一区二区三区| 欧美激情videos| 国产精品香蕉国产| 欧美重口另类videos人妖| 91精品视频一区| 另类天堂视频在线观看| 欧美大片欧美激情性色a∨久久| 91精品国产自产在线观看永久| 欧美精品videosex性欧美| 亚洲国产成人在线播放| 亚洲尤物视频网| 日韩人体视频一二区| 精品久久久久久久久久久久久久| 久久久之久亚州精品露出| 不卡中文字幕av| 欧美日韩精品中文字幕| 亚洲福利视频免费观看| 日韩有码在线视频| 亚洲免费精彩视频| 91美女片黄在线观| 成人午夜一级二级三级| 91精品一区二区| 成人午夜在线影院| 久久av在线看| 91黑丝高跟在线| 国产日韩欧美视频在线| 日韩精品视频在线免费观看| 欧美刺激性大交免费视频| 久久久久久久久久久免费精品| 亚洲自拍偷拍视频| 亚洲色图色老头| 国产欧美精品va在线观看| 国产亚洲成精品久久| 亚洲男人天堂网站| 欧美一级在线播放| 国产精品入口福利| 欧美视频中文字幕在线| 日韩美女视频在线观看| 亚洲国产成人精品电影| 国产日韩精品入口| 日韩av综合中文字幕| 日韩中文字幕精品视频| 韩国三级电影久久久久久| 久久久久久一区二区三区| 国产精品激情自拍| 国产精品欧美久久久| 欧美中文字幕在线视频| 欧美高清一级大片| 欧美成人免费视频| 国产激情999| 欧美日韩黄色大片| 69久久夜色精品国产69乱青草| 色偷偷偷综合中文字幕;dd| 亚洲小视频在线| 日韩人体视频一二区| 欧美韩日一区二区| 日韩久久精品电影| 久久在线免费观看视频| 亚洲视频在线观看网站| 日韩欧美在线看| 日韩av在线一区二区| 人人爽久久涩噜噜噜网站| 欧美丰满老妇厨房牲生活| 欧美日韩午夜剧场| 波霸ol色综合久久| 热门国产精品亚洲第一区在线| 亚洲性生活视频在线观看| 91精品国产91久久久久久最新| 国产精品久久电影观看| 国产伊人精品在线| 成人性生交大片免费看视频直播| 欧美亚洲激情视频| 91亚洲精品一区| 国产日韩综合一区二区性色av|