延迟函数:
// 使用例子_.delay(function(name) {console.log('Hello ' + name);}, 1000, 'David');
_.delay = function(fun, wait) {var args = [].slice.call(arguments, 2);return setTimeout(function(){fun.apply(null, args);}, wait);}
XSS攻击:
XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript,但实际上也可以包括Java、 VBScript、ActiveX、 Flash 或者甚至是普通的HTML。攻击成功后,攻击者可能得到包括但不限于更高的权限(如执行一些操作)、私密网页内容、会话和cookie等各种内容。
中文名:跨站脚本攻击
英文名:Cross Site Scripting
HTML字符实体(Character Entities),转义字符串(Escape Sequence)。
HTML特殊转义字符列表
最常用的字符实体 Character Entities:
| 显示 | 说明 | 实体名称 | 实体编号 |
|---|---|---|---|
| 半方大的空白 | |||
| 全方大的空白 | |||
| 不断行的空白格 | |||
| < | 小于 | < | < |
| > | 大于 | > | > |
| & | &符号 | & | & |
| “ | 双引号 | " | " |
| © | 版权 | © | © |
| ® | 已注册商标 | ® | ® |
| ™ | 商标(美国) | ™ | ™ |
| × | 乘号 | × | × |
| ÷ | 除号 | ÷ | ÷ |
function createEscape(map) {var exp = "(?:"+ Object.keys(map).join('|') +")";var regExp = new RegExp(exp, 'g');var rep = function(match){return map[match];};return function(value){// 匹配到,则替换字符串return regExp.test(value) ? value.replace(regExp, rep) : value;};}// 将 escapeMap 作为参数传递进去,减少了作用域查询,提高了性能_.escape = createEscape(escapeMap);
1.(pattern):匹配 pattern 并获取这一匹配。所获取的匹配可以从产生的 Matches 集合得到,在VBScript 中使用 SubMatches 集合,在JScript 中则使用 0…0…9 属性。要匹配圆括号字符,请使用 ‘(‘ 或 ‘)’。
2.(?:pattern):匹配 pattern 但不获取匹配结果,也就是说这是一个非获取匹配,不进行存储供以后使用。这在使用 “或” 字符 (|) 来组合一个模式的各个部分是很有用。例如, ‘industr(?:y|ies) 就是一个比 ‘industry|industries’ 更简略的表达式。
3.(?=pattern):正向预查,在任何匹配 pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如,’Windows (?=95|98|NT|2000)’ 能匹配 “Windows 2000” 中的 “Windows” ,但不能匹配 “Windows 3.1” 中的 “Windows”。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。
4.(?!pattern):负向预查,在任何不匹配 pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如’Windows (?!95|98|NT|2000)’ 能匹配 “Windows 3.1” 中的 “Windows”,但不能匹配 “Windows 2000” 中的 “Windows”。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始
