首页 > 其他 > 详细

随性的知识记录 (最近遇到的困难)

时间:2017-09-23 15:47:07      阅读:329      评论:0      收藏:0      [点我收藏+]

1,关于正则表达式,在做文本编辑框的高级校验的时候,允许用户输入正则表达式来校验,但是用户输入的没有任何限制,例如:按照我们的设计用户输入的内容应该是这样的:^$|^[0-9A-E]+$,但是测试的正则是研发给的,而研发需要的正则表达式是这样的:/^$|^[0-9A-E]+$/。这样的话,我们拿到用户输入的内容,在通过RegExp转化为正则表达式,那么正则表达式会是:/\/^$|^[0-9A-E]+$/\/。

    所以为了兼容用户的这种操作,第一次使用了eval(),将用户本来已经输入的正确的内容,转化为表达式(字符串转表达式)。但是遇到一个问题:eval()防止不了XSS攻击。所以后来放弃了。现在没有想到更好的办法,只能针对性的对用户的操作做兼容。用户的输入情况可能有4种:1:/^$|^[0-9A-E]+$/     2:^$|^[0-9A-E]+$   3:/^$|^[a-z]+$/i   4:/^$|^[a-z+$/i  (本身就是一个错误的表达式,缺了一个符号)。希望能找到更好的办法来兼容。加油。。。。。

2.underscore

JavaScript是函数式编程语言,支持高阶函数和闭包。函数式编程非常强大,可以写出非常简洁的代码。例如Arraymap()filter()方法:

‘use strict‘;
var a1 = [1, 4, 9, 16];
var a2 = a1.map(Math.sqrt); // [1, 2, 3, 4]
var a3 = a2.filter((x) => { return x % 2 === 0; }); // [2, 4]

现在问题来了,Arraymap()filter()方法,可是Object没有这些方法。

jQuery统一了不同浏览器之间的DOM操作的差异,让我们可以简单地对DOM进行操作,underscore则提供了一套完善的函数式编程的接口,让我们更方便地在JavaScript中实现函数式编程。

jQuery在加载时,会把自身绑定到唯一的全局变量 上,underscore与其类似,会把自身绑定到唯一的全局变量 上。

 

随性的知识记录 (最近遇到的困难)

原文:http://www.cnblogs.com/DebbieBlog/p/7581314.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!