• RegExp


    1.什么是RegExp;
    正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本;
    2.初始化RegExp;
    var reg = new RegExp(string,pattern);
    var reg = /string/pattren;
    partren(模式) = > i:不区分大小写;g:全局模式,匹配到字符串结束;m:多行;
    exec => 返回一个数组 如果字符串存在的话;
    test => 测试string是否被正则匹配;返回 true : false;
    match => 返回包含匹配字符串元素的一个数组;
    3.语法;
    w 匹配包括下划线在内的任意单词字符类似于;类似于[a-zA-Z_];
    W 匹配非数字;类似于[^a-zA-Z_];
    d 匹配一个数字;类似于[0-9];
    D 匹配一个非数字字符;类似于[^0-9];
     匹配一个单词边界;
    B 匹配一个非单词边界;
    s 匹配任何空白字符;包括空格;制表符;换页符;
    S 匹配任何一个非空字符;
    [] 表示一个范围;
    () 隔离一段代码;
    {n} n是一个非负整数。匹配确定的n次
    {n,m} 匹配n到m次;如果没有m 表示至少匹配n次;
    ? 匹配0次或者1次;
    ?: 表示不捕获后面的内容
    ^ 在[]内部表示非;外部表示开头
    $ 表示结尾;
    . 匹配除了 以外的任何字符;
    + 匹配一次或多次
    * 匹配任意次;
    | 关系或;两边作用范围: 遇到 ( 和 ) 结束; 没遇到时, 一直作用到正则表达式开头和结尾
    转义符;匹配正则表达式的语法或者保留字时需要使用;
    (a)1 1表示对前面的引用;支持先使用引用;但是匹配到的是位置;
    (?= ) 后面满足;
    (?!= ) 后面不满足;
    4.查找数组中第k大的值;
    function (arr, k){
    return arr.sort(function(a, b){return a -b})[k];
    }
    5.判断变量的数据类型;
    function type(obj){
    return Object.prototype.toString.call(obj).slice(8, -1).toLowerCase();
    }
    6.实现each函数;
    fucntion each(obj, callback){
    if(type(obj) == 'object'){
    for(var key in obj){
    if(false === callback(obj[key], key, obj)){
    return ;
    }
    }
    }else{
    for(var i = 0 ; i < obj.lengthl; i++){
    if(false === callback(obj[i], i, obj)){
    return ;
    }
    }
    }
    }
    7._mixin;
    function mixin(base){
    var list = Array.prototype.slice.apply(arguments);
    var method = typeof list[list - 1] === 'function'? list.pop(): function(key, base, obj){base[key] = obj[kye]};
    for(var i = 1, l = list.length; i < l ; i++){
    for(var key in list[i]){
    method(key, base, list[i]);
    }
    }
    return base;
    }
    8._bind;
    function bind(method, context){
    return function(){
    return method.apply(context,arguments);
    }
    }
    9.once();
    function once(method){
    var run = false,ret;
    return function(){
    if(!run){
    run = true;
    ret = method();
    }
    return ret;
    }
    }
    10 _.throttle/_.debounce
    function throttle(func, wait){
    var last = 0;
    return function(){
    var date = +new Date();
    if(date - last > wait){
    last = date;
    func();
    }
    }
    }
    function throttleEX(func, wait, config){
    var last = 0, timeout , later = function(){
    timeout = null;
    last = +new Date();
    func();
    };
    return function(){
    var now = + new Date();
    var remaining = wait - (now - last);
    if(remaining < 0){
    if(timeout){
    clearTimeout( timeout );
    timeout = null;
    }
    last = now ;
    func():
    }else if(!timeout && config.trailing){
    timeout = setTimeout(later, remaining);
    }
    }
    }

  • 相关阅读:
    IOS应用内嵌cocos2dx游戏项目
    C++ 动态内存
    C++ 文件和流
    【转】SQL中的锁、脏读、不可重复的读及虚读
    【转】WCF扩展系列
    【转】WCF设置拦截器捕捉到request和reply消息
    关于拦截器模式的理解
    【转】netty源码分析之LengthFieldBasedFrameDecoder
    【转】使用nginx搭建高可用,高并发的wcf集群
    【转】Nginx 反向代理 负载均衡 虚拟主机配置
  • 原文地址:https://www.cnblogs.com/clearfix/p/4125323.html
Copyright © 2020-2023  润新知