展开目录
replace2正则扩展方法
javascript
X
陈尼玛的博客
记录开发生涯的踩坑经历,用时间来验证成长
加载中

自己写了一个正则命名分组,参考了nginx的配置文件语法,让js正则使用更方便。

/*!
 * replace2正则扩展方法
 * Date: 2016-12-13T19:56Z
 */
void function(){
  String.prototype.replace2=function(xreg,callback){
    var regstr=xreg.toString();
    var regn=[0];
    regstr=regstr.replace(/\$([a-z\d\_]+)\=/ig,function(a,b){
      regn.push(b);
      return ;
    });

    var r;
    regstr.replace(/^\/(.+?)\/([ig]+)$/g,function(a,b,c){
      r=new RegExp(b,c);
    });
    return this.replace(r,function(){
      var res={};
      var a=arguments;
      for(var i=1;i<=9;i++)
        if(a[i]===0)break;
        else if(typeof regn[i] === undefined);
        else res[regn[i]]=a[i];
      if(typeof callback===function) return callback(res);
      return callback.replace(/\$([a-z\d]+)/ig,function(a,b){
        return res[b];
      });
    });
  };
}();

// 回调式
console.log(apple: 12; banana: 13;.replace2(/($name=[a-z]+)\:\s*($count=\d+)/g,function(x){
  return x.name+=>+x.count;
}));

// 字符串式
console.log(apple: 12; banana: 13;.replace2(/($name=[a-z]+)\:\s*($count=\d+)/g,$name=>$count));

相关文档

  1. 判断变量是否 0 或者 '0'

  2. 简易版事件封装

  3. youku电脑版跳过广告代码

  4. 解密某个js文件

  5. 破解百度云下载链接

  6. 让js支持带命名的正则表达式

  7. jshtml模板引擎

  8. json2html源码

  9. 读取Blob的内容实体

  10. 判断一个object是否HTMLDom

  11. 简易命令行解析器

  12. Promise才是javascript的正统队列

  13. callback => Promise.then

  14. nodejs异步回调的并发控制

  15. 低版本IE命名函数表达式bug

  16. 让重复调用只有第一次生效

  17. 简易JSON函数封装

  18. 使用eval来修改上下文的变量

  19. seajs同步加载依赖的实现和弊病

  20. html5页面全屏方法

  21. 给滚动条置顶添加过渡动画

  22. m秒内最多n次的问题

  23. 让代码扁平化

  24. 关于自动加载的问题

随便看看

  1. windows电脑防止自动休眠

  2. git 大小写不区分问题

  3. css多行文本超出截断显示省略号

  4. css3自定义滚动条样式

  5. pip安装nltk临时使用国内源

  6. css3 文字渐变色

  7. nodejs俄罗斯方块

  8. 单页应用的单向数据流的流程图

  9. dd备份/还原

  10. git 设置代理服务器

  11. python下载文件,带进度条控制

  12. centos查看最近一次的开机时间

  13. 树莓派配置wifi

  14. 猴子选大王算法问题

  15. centos7 开放或者关闭端口

  16. bootstrap modal弹框导致ie无法获取焦点

  17. 感谢beego陪伴我度过那不靠谱的半年

畅言模块加载中