zoukankan      html  css  js  c++  java
  • 随性的知识记录 (最近遇到的困难)

    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与其类似,会把自身绑定到唯一的全局变量 上。

  • 相关阅读:
    PHP打开错误提示和关闭错误提示的方法
    squid的简单介绍
    伪静态与重定向--RewriteRule
    PHP操作Redis常用技巧总结
    爱漂泊人生 30个php操作redis常用方法代码例子
    Mysql与Redis的同步实践
    Linux 命令之grep
    Linux 命令之sed
    Linux shell 计算两个文件的并集、交集、差集
    Linux 软链接的创建、删除和更新
  • 原文地址:https://www.cnblogs.com/DebbieBlog/p/7581314.html
Copyright © 2011-2022 走看看