es6中 “标签模板”的一个重要应用
“标签模板”的一个重要应用,就是过滤 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, "&").replace(/</g, "<").replace(/>/g, ">");// 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><script>alert("abc")</script> has sent you a message.</p>
标签模板的另一个应用,就是多语言转换(国际化处理)。
i18n`Welcome to ${siteName}, you are visitor number ${visitorNumber}!`
// "欢迎访问xxx,您是第xxxx位访问者!"
es6中 “标签模板”的一个重要应用相关推荐
- es6中标签模板实例中的tab函数的理解
let a = 5; let b = 10; tag`A ${ a + b } B ${ a * b }`; // 等同于 tag(['A', ' B', ''], 15, 50); function ...
- es6字符串添加html标签,JavaScript_详解JavaScript ES6中的模板字符串,在 ES6 中引入了一种新的字符 - phpStudy...
详解JavaScript ES6中的模板字符串 在 ES6 中引入了一种新的字符串字面量 - 模板字符串,除了使用反引号 (`) 表示,它们看上去和普通的字符串没有什么区别.在最简单的情况下,他们就是 ...
- [译]JavaScript:ES6中的模板字符串简介
原文:http://tc39wiki.calculist.org/es6/template-strings/ ES6中的模板字符串(template string)是一种能在字符串文本中内嵌表达式的字 ...
- js模板字符串自定义类名_详解JavaScript ES6中的模板字符串
这篇文章主要介绍了详解JavaScript ES6中的模板字符串,JS的ES6版本带来诸多简洁化方面的重大改进,需要的朋友可以参考下 在 ES6 中引入了一种新的字符串字面量 - 模板字符串,除了使用 ...
- idea java代码注释中@标签模板创建,apidoc接口文档@标签模板创建
我们在开发工具中的代码注释经常会用到一些@标签,比如常用的@author ,如下: 那么我们如果要自定义一些自己需要的注释标签模板呢,比如在使用 apidoc生成接口模板时,就需要经常写一些apido ...
- es6模板字符串中标签模板作为参数时产生空元素的问题
当模板字符串作为标签模板使用时,标签函数接受到的参数分别为(arr,-values) arr:模板字符串中所有那些没有变量替换的部分 -values:各个变量替换后的值 即 let a = 'Oh!' ...
- 用ES6中的模板字符串实现在字符串中添加变量和字符串换行
什么是模板字符串 它可以当作普通字符串使用,也可以用来定义多行字符串,或者在字符串中嵌入变量. 例如: var str1 = '你好吗' +'李华';var str2 = `你好吗 李华`;conso ...
- ES6中的模板字符串---反引号``
在react中,反引号``有特殊的含义. 如MDN中所述,模板字符串(Template literals)允许嵌入表达式,并且支持多行字符串和字符串插补特性.基本语法为以下几种: 其中第一行为最基本用 ...
- ES6 标签模板与模板字符串
模板字符串 模板字符串使用反引号 () 来代替普通字符串中的用双引号和单引号.模板字符串可以包含特定语法(${expression})的占位符.占位符中的表达式和周围的文本会一起传递给一个默认函数,该 ...
最新文章
- 解决mysql建立的数据库名字不能带大写字母
- 配置apache服务器的文件名,apache服务器配置文件名是
- python字符串、元组常用操作
- Tarjan有向图强连通分量
- DSP与STM32区别
- 沃尔玛控股中国1号店
- LeetCode--41.缺失的第一个正数(C)
- C++ placement new使用
- ParticleSystem的使用
- HoudahSpot 6.2 for Mac文件搜索软件
- python基础练习题30道
- java war包 加密_Java加密jar包流程
- 本周大新闻|佳能AR头显MREAL X1发布,Quest手势追踪2.0来袭
- 一款在Linux下运行Android应用的软件——xDroid
- wh计算公式_锂电池计算公式wh 锂电池锂含量如何计算 - 硬件设备 - 服务器之家...
- C#学习 - 关于Single()
- 二、鼎捷T100总账管理之核算项管理篇
- C++几个常用的排序
- SpringBoot 在main或者普通类中条用service接口
- Android实战——第三方服务之Bmob后端云的答题系统小项目(四)