“标签模板”的一个重要应用,就是过滤 HTML 字符串,防止用户输入恶意内容。

let message =SaferHTML`<p>${sender} has sent you a message.</p>`;function SaferHTML(templateData) {let s = templateData[0];for (let i = 1; i < arguments.length; i++) {let arg = String(arguments[i]);// Escape special characters in the substitution.s += arg.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;");// Don't escape special characters in the template.s += templateData[i];}return s;
}

上面代码中,sender变量往往是用户提供的,经过SaferHTML函数处理,里面的特殊字符都会被转义。

let sender = '<script>alert("abc")</script>'; // 恶意代码
let message = SaferHTML`<p>${sender} has sent you a message.</p>`;message
// <p>&lt;script&gt;alert("abc")&lt;/script&gt; has sent you a message.</p>

标签模板的另一个应用,就是多语言转换(国际化处理)。

i18n`Welcome to ${siteName}, you are visitor number ${visitorNumber}!`
// "欢迎访问xxx,您是第xxxx位访问者!"

es6中 “标签模板”的一个重要应用相关推荐

  1. es6中标签模板实例中的tab函数的理解

    let a = 5; let b = 10; tag`A ${ a + b } B ${ a * b }`; // 等同于 tag(['A', ' B', ''], 15, 50); function ...

  2. es6字符串添加html标签,JavaScript_详解JavaScript ES6中的模板字符串,在 ES6 中引入了一种新的字符 - phpStudy...

    详解JavaScript ES6中的模板字符串 在 ES6 中引入了一种新的字符串字面量 - 模板字符串,除了使用反引号 (`) 表示,它们看上去和普通的字符串没有什么区别.在最简单的情况下,他们就是 ...

  3. [译]JavaScript:ES6中的模板字符串简介

    原文:http://tc39wiki.calculist.org/es6/template-strings/ ES6中的模板字符串(template string)是一种能在字符串文本中内嵌表达式的字 ...

  4. js模板字符串自定义类名_详解JavaScript ES6中的模板字符串

    这篇文章主要介绍了详解JavaScript ES6中的模板字符串,JS的ES6版本带来诸多简洁化方面的重大改进,需要的朋友可以参考下 在 ES6 中引入了一种新的字符串字面量 - 模板字符串,除了使用 ...

  5. idea java代码注释中@标签模板创建,apidoc接口文档@标签模板创建

    我们在开发工具中的代码注释经常会用到一些@标签,比如常用的@author ,如下: 那么我们如果要自定义一些自己需要的注释标签模板呢,比如在使用 apidoc生成接口模板时,就需要经常写一些apido ...

  6. es6模板字符串中标签模板作为参数时产生空元素的问题

    当模板字符串作为标签模板使用时,标签函数接受到的参数分别为(arr,-values) arr:模板字符串中所有那些没有变量替换的部分 -values:各个变量替换后的值 即 let a = 'Oh!' ...

  7. 用ES6中的模板字符串实现在字符串中添加变量和字符串换行

    什么是模板字符串 它可以当作普通字符串使用,也可以用来定义多行字符串,或者在字符串中嵌入变量. 例如: var str1 = '你好吗' +'李华';var str2 = `你好吗 李华`;conso ...

  8. ES6中的模板字符串---反引号``

    在react中,反引号``有特殊的含义. 如MDN中所述,模板字符串(Template literals)允许嵌入表达式,并且支持多行字符串和字符串插补特性.基本语法为以下几种: 其中第一行为最基本用 ...

  9. ES6 标签模板与模板字符串

    模板字符串 模板字符串使用反引号 () 来代替普通字符串中的用双引号和单引号.模板字符串可以包含特定语法(${expression})的占位符.占位符中的表达式和周围的文本会一起传递给一个默认函数,该 ...

最新文章

  1. 解决mysql建立的数据库名字不能带大写字母
  2. 配置apache服务器的文件名,apache服务器配置文件名是
  3. python字符串、元组常用操作
  4. Tarjan有向图强连通分量
  5. DSP与STM32区别
  6. 沃尔玛控股中国1号店
  7. LeetCode--41.缺失的第一个正数(C)
  8. C++ placement new使用
  9. ParticleSystem的使用
  10. HoudahSpot 6.2 for Mac文件搜索软件
  11. python基础练习题30道
  12. java war包 加密_Java加密jar包流程
  13. 本周大新闻|佳能AR头显MREAL X1发布,Quest手势追踪2.0来袭
  14. 一款在Linux下运行Android应用的软件——xDroid
  15. wh计算公式_锂电池计算公式wh 锂电池锂含量如何计算 - 硬件设备 - 服务器之家...
  16. C#学习 - 关于Single()
  17. 二、鼎捷T100总账管理之核算项管理篇
  18. C++几个常用的排序
  19. SpringBoot 在main或者普通类中条用service接口
  20. Android实战——第三方服务之Bmob后端云的答题系统小项目(四)

热门文章

  1. 上门做饭系统源码,私厨上门烹饪美食
  2. 关于开关电源相关知识及应用
  3. 猿创征文|给妈妈做个相册——在服务器上搭建Lychee相册的保姆级教程
  4. 佳能hdr_21天摄影打卡计划 5月15日主题:HDR
  5. Adobe Flex认证考试
  6. 【Python爬虫】爬虫实战
  7. C和指针_编程练习_第9章_第11题
  8. php 修改include文件,PHP Include 文件
  9. 人人都可以学会的超级记忆法 - 学习笔记
  10. sigmatube软件破解思路与方向