什么是实体[x]
What is Entity[x]?
我在读Javascript: The Good Parts
作者有一个闭包函数:
return this.replace(/&([^&;]+);/g,
function (a, b) {
var r = entity[b];
return typeof r === 'string' ? r : a;
}
我不确定ENTITY是什么功能
JavaScript中没有这样的关键字,至少在ECMAScript7 (current)之前是这样。唯一可以使用这些类型的括号[]
的对象是某种数据结构(对象、数组等)。所以这个动作entyty[b]
将在结构entity
中获取由键b
表示的数据。
在这个特殊的例子中,b
的值将表示括号([^&;]+)
中正则表达式的所有匹配子字符串(在文档https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/String/replace中查看原因),它将具有结构&something;
,这是一个常规HTML实体的样子。例如,它可以是>
,这是>
等的HTML实体。
所以作者真正的意思是:
var entity = {
'gt': '>',
'lt': '<',
// other HTML entities mapping
};
var str = "><.";
str = str.replace(/&([^&;]+);/g,
function (a, b) {
var r = entity[b];
return typeof r === 'string' ? r : a; // checks if the entity existed in your entity collection, otherwise return the original string
});
console.log(str);
结果是:><.
。因为entity
里面没有.
因此,作者提出了一种算法,将HTML实体字符串转换为具有其真实字符表示的字符串。您可以使用此资源进一步开发:https://dev.w3.org/html5/html-author/charref
干杯!
相关文章:
- 这是什么 ==- javascript 运算符
- 我的单元测试选项是什么
- 全局变量和全局对象的属性之间有什么区别吗
- 打破承诺链的好方法是什么
- 在AngularJS应用程序中使用封装指令和路由的推荐方式是什么
- Javascript中的空白是什么
- 是什么让一个“;Uncaught RangeError:超过了最大调用堆栈大小“;错误(Chrome,在其他浏览器中显示
- 在ember/handlers中使用value和valueBinding有什么区别
- 什么'在webpack外部设置中,reactDom和reactDom不同
- 在JavaScript中拆分日期字符串的更好方法是什么
- 为什么$.brower被弃用?还有什么更好的替代方案
- 什么是&&在没有if的行中的变量之间
- 将jQuery.ech()方法转换为本地JavaScript抽象的最佳方法是什么
- 处理浮点错误的最佳方法是什么
- JQuery 和 Azure Table,有没有办法使用 JQuery 插入实体?,帐户密钥会发生什么
- Cesiumjs中实体和原语的区别是什么
- 什么是ByteArrayEntity和JavaScript中的等效实体
- 什么是实体[x]
- 多实体搜索功能、Web API或手动查询应该使用什么?
- 实体有什么用